Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Добрый день, подскажите по правила обмена может было у кого такое. Делаю перенос справочника Контрагенты из 7.7 в 8.2. В 7.7 нет поля Покупатель, Поставщик, где прописать выборку, если контрагент встречается в документах приходных накладных то это Поставщик, если расходных накладных то это покупатель?
По теме из базы знаний
- Обработка корректного изменения конфигураций Источник и (или) Приемник в правилах конвертации данных
- Правила конвертации данных из 1С:Производство+Услуги+Бухгалтерия в конфигурацию 1С:Бухгалтерия предприятия 3.0
- Обмен по правилам Конвертации данных 2.1 для ERP, КА, УТ 11, БП 3, ЗУП 3, Розница 2.3
- Выгрузка / загрузка правил Конвертации данных 2.1 в файлы / из файлов (для Git, SonarQube, VS Code и т.д.)
- Правила конвертации данных из 1С:Бухгалтерии предприятия 3.0 в конфигурацию 1С:Управление производственным предприятием 1.3
Найденные решения
(7) nogik, ясно, значит, у вас ПВД для справочника Контрагентов.
можно, например, ПВД с произвольным алгоритмом, там запросом выбрать сначала покупателей, потом поставщиков, и заполнять ВыборкаДанных так, как требуется - завести новые поля "Поставщик", "Покупатель", и заполнять их, как надо.
можно, например, ПВД с произвольным алгоритмом, там запросом выбрать сначала покупателей, потом поставщиков, и заполнять ВыборкаДанных так, как требуется - завести новые поля "Поставщик", "Покупатель", и заполнять их, как надо.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) nogik,
ПКО (Конрагенты) - Реквизит "Покупатель" - в ПКС Перед выгрузкой:
Контрагент = Источник;
// запрос ..........
// Результат = .....;
Значение = Результат;
Словами:
Есть правило конвертации объекта "Контрагенты", у правила добавляем правило конвертации свойств "Покупатель" (в приемнике "Покупатель" имеется ввиду), в процедуре "Перед выгрузкой" для этого ПКС пишем запрос, где Источник - это будет наш несчастный контрагент, Значение - то, что помещаем в поле Покупатель при переносе, короче ставим там галочку или нет (Значение = 1 или Значение =0).Так же и для "Поставщик"
ПКО (Конрагенты) - Реквизит "Покупатель" - в ПКС Перед выгрузкой:
Контрагент = Источник;
// запрос ..........
// Результат = .....;
Значение = Результат;
Словами:
Есть правило конвертации объекта "Контрагенты", у правила добавляем правило конвертации свойств "Покупатель" (в приемнике "Покупатель" имеется ввиду), в процедуре "Перед выгрузкой" для этого ПКС пишем запрос, где Источник - это будет наш несчастный контрагент, Значение - то, что помещаем в поле Покупатель при переносе, короче ставим там галочку или нет (Значение = 1 или Значение =0).Так же и для "Поставщик"
К сожалению, не разбираюсь в запросах 7ки. Но смысл примерно такой
Запрос.Группировка(1)=1 Цикл
//здесь формируем исходящие данные
ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.Установить("Покупатель", Запрос.Покупатель);
ИсходящиеДанные.Установить("Поставщик", Запрос.Поставщик);
ВыгрузитьПоПравилу(Запрос.Контрагент, , ИсходящиеДанные, , "ПравилоКонтрагенты");
КонецЦикла;
Показать
(5) andrewks, я наверно не правильно как-то написал, мне нужно перенести справочник Контрагенты из 7.7 в 8.2, в 7.7 нет таких параметров как поставщик или покупатель, мне их в 8.2 нужно соответственно определить. А определить я их могу из 2 документов приходная или расходная накладная, если этот контрагент встречается в документе том или ином соответственно нужно и ставить галочку в контрагенте. Вот такая задача.
(7) nogik, ясно, значит, у вас ПВД для справочника Контрагентов.
можно, например, ПВД с произвольным алгоритмом, там запросом выбрать сначала покупателей, потом поставщиков, и заполнять ВыборкаДанных так, как требуется - завести новые поля "Поставщик", "Покупатель", и заполнять их, как надо.
можно, например, ПВД с произвольным алгоритмом, там запросом выбрать сначала покупателей, потом поставщиков, и заполнять ВыборкаДанных так, как требуется - завести новые поля "Поставщик", "Покупатель", и заполнять их, как надо.
(9) andrewks, Написал Алгоритм
Перем РезультатЗапроса;
Если Источник = "" Тогда
Возврат 0;
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Контрагент = Регистр.Взаиморасчеты.Клиент;
|Сум = Регистр.Взаиморасчеты.СуммаВал;
|Функция Приход = Приход(Сум);
|Функция Расход = Расход(Сум);
|Условие(Контрагент = Источник);
|"//}}ЗАПРОС;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат 0;
КонецЕсли;
Запрос.Выгрузить(РезультатЗапроса);
Если РезультатЗапроса.КоличествоСтрок() > 0 Тогда
РезультатЗапроса.ПолучитьСтрокуПоНомеру(РезультатЗапроса.КоличествоСтрок());
Если (РезультатЗапроса.Приход > 0) ИЛИ (РезультатЗапроса.Расход > 0) Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
Иначе
Возврат 0;
КонецЕсли;
При выгрузке контрагента пишет 0, подскажите может что с запросом не так?
Перем РезультатЗапроса;
Если Источник = "" Тогда
Возврат 0;
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Контрагент = Регистр.Взаиморасчеты.Клиент;
|Сум = Регистр.Взаиморасчеты.СуммаВал;
|Функция Приход = Приход(Сум);
|Функция Расход = Расход(Сум);
|Условие(Контрагент = Источник);
|"//}}ЗАПРОС;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат 0;
КонецЕсли;
Запрос.Выгрузить(РезультатЗапроса);
Если РезультатЗапроса.КоличествоСтрок() > 0 Тогда
РезультатЗапроса.ПолучитьСтрокуПоНомеру(РезультатЗапроса.КоличествоСтрок());
Если (РезультатЗапроса.Приход > 0) ИЛИ (РезультатЗапроса.Расход > 0) Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
Иначе
Возврат 0;
КонецЕсли;
При выгрузке контрагента пишет 0, подскажите может что с запросом не так?
я наверно не правильно как-то написал, мне нужно перенести справочник Контрагенты из 7.7 в 8.2, в 7.7 нет таких параметров как поставщик или покупатель, мне их в 8.2 нужно соответственно определить. А определить я их могу из 2 документов приходная или расходная накладная, если этот контрагент встречается в документе том или ином соответственно нужно и ставить галочку в контрагенте. Вот такая задача.
Посмотрите типовые правила по переносу из Бух 7.7 в УТ 10.3 или Бух 2.0.
Там такая же проблема и решается она следующим образом.
На время переноса в 7.7. создаются аналогичные поля "покупатель" и "поставщик". Дальше запускается обработка, которая анализирует, в каких документах участвует контрагент - в реализациях или поступлениях. Если в продажах, то ставятся галочка "покупатель", если в поставках - "поставщик". После того, как галочки проставлены, то можно в правилах обмена сопоставить поля в информационных базах.
Еще есть вариант, который сработает, если есть четкое условие, что контрагент либо поставщик, либо покупатель. В таком случае нужно использовать факт, откуда срабатывает правило для контрагента. Т.е. в документах, откуда выбирается контрагент, передавать исходящими данными "покупатель" или "поставщик". Например, если контрагент передается из реализации, то мы ставим Покупатель=1, Поставщик=0.
Там такая же проблема и решается она следующим образом.
На время переноса в 7.7. создаются аналогичные поля "покупатель" и "поставщик". Дальше запускается обработка, которая анализирует, в каких документах участвует контрагент - в реализациях или поступлениях. Если в продажах, то ставятся галочка "покупатель", если в поставках - "поставщик". После того, как галочки проставлены, то можно в правилах обмена сопоставить поля в информационных базах.
Еще есть вариант, который сработает, если есть четкое условие, что контрагент либо поставщик, либо покупатель. В таком случае нужно использовать факт, откуда срабатывает правило для контрагента. Т.е. в документах, откуда выбирается контрагент, передавать исходящими данными "покупатель" или "поставщик". Например, если контрагент передается из реализации, то мы ставим Покупатель=1, Поставщик=0.
(16) moonlight81, по поводу второго варианта вы имеете ввиду при выгрузке документа расходной или приходной накладной, чтобы исходящими данными передавалось в ПКО Контрагента значение Поставщик или Покупатель? А алгоритмом через запрос, никак мне не получить эти данные? Не хотелось бы выгружать ещё документы они там не нужны.
Можете сделать произвольную выборку, заменив стандартный алгоритм выборки справочника "контрагенты", и там написать запрос с определением, к каким документам "относится" контрагент. После это запихнуть полученные данные в исходящие и выгрузить вместе с ссылкой по контрагенту.
(18) moonlight81, Вот подскажите по моему алгоритму, что я сделал. Провёл отладку запрос не хочет выдавать значения, я уже и период добавил в запрос, но результата по запросу нет(((, что может не так быть с запросом
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНач по ДатаКон;
|Контрагент = Регистр.Взаиморасчеты.Клиент;
|Сум = Регистр.Взаиморасчеты.СуммаВал;
|Функция Приход = Приход(Сум);
|Функция Расход = Расход(Сум);
|Условие(Контрагент = Источник);
|"//}}ЗАПРОС
или я не правильно его обрабатываю, не пойму в чём проблема?
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНач по ДатаКон;
|Контрагент = Регистр.Взаиморасчеты.Клиент;
|Сум = Регистр.Взаиморасчеты.СуммаВал;
|Функция Приход = Приход(Сум);
|Функция Расход = Расход(Сум);
|Условие(Контрагент = Источник);
|"//}}ЗАПРОС
или я не правильно его обрабатываю, не пойму в чём проблема?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот