Формирование ПКС. Конвертация данных 1С 2.1

27.03.21

Интеграция - Перенос данных 1C

В статье рассмотрены некоторые примеры конвертации свойств. Если кому-то пригодится, одной из лучших благодарностей будет являться ваш лайк.

1. Выгрузка в ПКС любой ссылки, кроме перечисления. Перечисление будет в пункте 2.

 

Вариант А) Классика:

Рис. 1

Из Рис. 1 в качестве примера возьмём вторую строку. У нас есть Источник - в данном случае это Ссылка на "Начисление" (план видов расчета), для которого задано ПКО "Начисления". 

 

Откроем правило конвертации объекта (ПКО) "Начисления" (Рис. 2).

Рис. 2

 

Рис. 3

Здесь всё просто, если объект не найден по УИДу, загрузка будет искать его по реквизиту "Код". 

 

Немного теории: При выгрузке объекта в ПКС, не зарегистрированного для выгрузки, Объект не выгружается, а выгружается Ссылка и её поля поиска (указанные в правиле конвертации объекта - ПКО). 

В моём примере это УИД и Код.

На Рис. 4 свойство "Начисление" в файле выгрузки (сформированное ПКС "Начисление" из Рис. 1):

Рис. 4

Как видно из Рис. 4, поля "Наименование" нет. Из свойства не создаётся объект. Если поискать Объект в файле по выгруженному УИД (УникальныйИдентификатор), то его там не будет.

 

Вариант Б) Нам всё же нужно создать объект, выгружаемый в ПКС. В качестве примера возьмём "Вариант А".

 

Чтобы не зарегистрированная Ссылка была выгружена полностью, нужно задать параметр (Пример в Рис. 5):

ВыгрузитьОбъект = Истина;

Рис. 5

 

Выгрузим документ повторно. Теперь в файле есть Объект.

Рис. 6

Теперь при загрузке, если объект не будет найден по УИД или Коду, то создастся новый.

 

Чтобы новый не был создан, нужно задать настройки "Не создавать новый объект в приемнике, если он НЕ найден":

Рис. 7

Настройка "Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их" - нужна для того, чтобы если объект найден, но его "Наименование" отличается от загружаемого, то оно не было бы замещено. Но, если объект не найден, он будет создан с загружаемым УИД, Кодом и Наименованием. 

Если же нам нужно, чтобы имеющиеся объекты не замещались и новые не создавались, нужно установить обе настройки.

Рис. 8

 

Немного уточняющих деталей ниже.

Если не ясен момент, почему Ссылка не зарегистрирована для выгрузки и что под этим подразумевается, попробую объяснить.

В системе есть некий план обмена, в моём примере это ЗУП 3.1 - БП 3.0. В этом плане обмена задан состав регистрируемых для выгрузки объектов (Рис. 9).

 

Рис. 9

Как видно из Рис. 9 ни один план видов расчета не регистрируется для обмена (именно его мы выгружали выше). Соответственно для него нет ПВД (правило выгрузки данных).  

И его (плана вида расчетов) так же нет в Регистрации изменений для обмена (Рис. 10). То есть необязательно проверять в конфигураторе, можно это увидеть и из пользовательского режима. 

Рис. 10

 

Вариант В) Нужно выгрузить ссылку по одному свойству строкового типа. Для примера выгрузим "Начисление" по Наименованию. Считаем, что в принимающей базе начисления есть, но УИДы и Коды с базой источником точно не совпадают.

Создадим новое ПКО и назовём его "НачисленияИзСтроки".

 

Переопределим Значение свойства "Начисление" Рис. 11. (В справке указано "Значение - это конвертируемое значение свойства.")

Значение = ОбъектКоллекции.Начисление.Наименование;

Рис. 11

Другими словами мы "отправляем" в ПКО в качестве источника не ссылку, а строку.

 

Поскольку в моём примере "Начисление" находится в строке табличной части, то я использую параметр ОбъектКоллекции. (Если бы "Начисление" было реквизитом, то я бы написала Источник.Начисление.Наименование.)

 

В ПКО выделенные в Рис. 12 настройки должны быть сняты, поскольку у строки УИДа нет. Объект-источник не заполнен.

Рис. 12

 

Поиск будет выполняться по свойству Наименование, это нужно отметить флажком во второй колонке. Выделила на Рис. 13.

Рис. 13

В свойстве "Наименование" перед выгрузкой укажем:

Значение = Источник;

Рис. 14

 

Вариант Г) Нужно выгрузить ссылку из структуры.

 

Например, по какой-то причине Начисление задано структурой.

ПКО назовём "НачисленияИзСтруктуры".

 

В КД 2.1 есть возможность использовать параметры: ИсходящиеДанные и ВходящиеДанные.

Рис. 15

 

ИсходящиеДанные зададим как Структура Рис. 16.

Рис. 16

 

ПКО "НачисленияИзСтруктуры" будет вида:

Рис. 17

В ПКС "Код" и "Наименование" ничего не указано. В колонках "Поиск" и "Получить из входящих данных" установлены флажки.

 

Вариант Д) Выгрузка предопределенного значения справочника, в случае когда нужно указать конкретное значение.

 

Рис. 18

 

Используем параметр "Выражение".

Выражение = "Справочники.ВидыВычетовНДФЛ.Код108";

Рис. 19

 

2. Выгрузка перечисления, когда нужно указать конкретное значение.

 

В ПКС указываем ПКО, источник не задаём.

Рис. 18

 

Перед выгрузкой в Значение задаём имя нужного перечисления Рис. 19.

Рис. 19

 

 

Ниже оставшийся текст первоначальной версии статьи от октября 2015 года.

 

Вариант 1

Задать своё значение Наименования.

 

 

 

Вариант 2 

Запрет выгрузки "Групп" справочников в конвертации данных.

 

задать свое значение в КД 2.1

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    143318    821    297    

428

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    168352    344    279    

380

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.20.x), также подходят для релиза 11.5 (11.5.19.x).

35000 31500 руб.

23.07.2020    53406    236    73    

192

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.237.x) и БП 3.0 (3.0.166.x). Правила подходят для версии ПРОФ и КОРП.

35000 31500 руб.

15.12.2021    24819    174    51    

132

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    37239    99    66    

95

Перенос данных 1C Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12000 руб.

25.09.2016    81561    324    253    

276

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    172008    307    258    

384

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

19.08.2020    25689    25    1    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kit 74 28.10.15 18:40 Сейчас в теме
Как пример задания конкретного значения в приёмнике имеет право на существование. А вообще, разве нельзя синхронизировать эти справочники переносом данных из БП 3.0 в ЗУП 2.5?
2. perepetulichka 915 28.10.15 19:00 Сейчас в теме
(1) kit, можно конечно :)
Но политика нашей организации такова, что Оценочные обязательства и резервы в системе ЗУП давно утверждены и централизованы. Центральный аппарат этим пользуется, им вполне хватает. А регионы только переходят на ЗУП (РИБ), причем в каждой отдельной системе проводки формируют по-разному, да еще и в разные Бухгалтерии (у кого-то 7-ка, у кого-то Бухгалтерия 8.2, у избранных - 8.3), и бухгалтерия требует, чтобы "было как раньше" до перехода.
В общем, они хотят, чтобы справочники в ЗУПе в ЦА и регионах совпадали, так что мы пока не можем из всех бухгалтерий синхронизировать справочники.
Возможно, когда Бухгалтерия так же станет общей, сделаем синхронизацию.
3. Oleg_nsk 279 29.10.15 06:50 Сейчас в теме
Аналогичную задачу решал добавлением параметра объекта в который записывал код, а свойство выводил в "отказ = истина". При загрузке объекта, если свойство не задано, а параметр существует - выполнял поиск элемента справочника по значению параметра.
4. K_A_O 539 30.10.15 12:13 Сейчас в теме
А еще можно написать Выражение=...
Выполнится на стороне приемника
5. karapuzzzz 63 04.11.15 12:18 Сейчас в теме
Ради одного элемента такое делать (создавать ПКО) нет необходимости.
Самый идеальный вариант это сделать элементы предопределенными и синхронизировать по значению. Использовать в коде конструкции с проверками кода или наименования элементов очень и очень плохое занятие.
Другой вариант (раз уж связываемся с кодом или наименованием) это передавать наименование значения реквизита как строку через параметр. И уже после загрузки данных анализировать значение параметра и в зависимости от него подставлять необходимое значение в реквизит.
6. olbu 11.12.15 09:46 Сейчас в теме
Сам с аналогичным заданием "мучился", все же КД - "темная лошадка", или просто я "не умею ее готовить"...
7. pas86 20.07.16 06:33 Сейчас в теме
Всем привет. А может кто подскажет?
Есть у меня Реквизит в табличной части Источника, но его нет в Табличной части Приемника. Как правильно его передать через параметр?
Источник это реквизит СубконтоНУ, тип справочник ФизЛицо.
Приемник должен быть СубконтоБУ и тип справочник Контрагент(Поиск по наименованиею). Но НЕ во всех местах. Где-то в СубконтоБУ, по определённому мной условию, должно остаться физ.лицо из реквизита Источника СубконтоБУ.
8. perepetulichka 915 20.07.16 10:53 Сейчас в теме
(7) pas86, возможно стоит пойти путём произвольного алгоритма?

Делаешь выборку в источнике, обходишь её и в случае (пример):

Если Выборка.СчетДт = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы Тогда


в твоей таблице значений для "СубконтоБУ" задаешь Выборка.Физлицо

У тебя ведь для каждого счета заданы свои субконто. Вот в зависимости от этого и можно сформировать полученную таблицу ВыборкиДанных.
9. N_s_s 3 31.01.17 16:05 Сейчас в теме
Добрый день, подскажите, как мне можно перенести элемент из источника в приемник, если в источнике элемент непосредственно не задан, определяется так:

	// Заполнить список выбора номенклатуры
	ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Товар");
	ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Услуга");
	// ДАЛИОНПРО – начало
	ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Комплект");
	ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Продукция");	
	// ДАЛИОНПРО – конец
	// ДалионУМ - начало
	Если Алкоголь ИЛИ Константы.УчитыватьАлкоголь.Получить() Тогда
		ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Алкоголь");
	КонецЕсли;
	
	Если Сертификат ИЛИ Константы.ИспользоватьПодарочныеСертификаты.Получить() Тогда
		ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Сертификат");
	КонецЕсли;
	
	Если ТабачныеИзделия Или Константы.ИспользоватьМеханизмМРЦДляSet10.Получить() Тогда
		ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Табак");
	КонецЕсли;
Показать


Меня интересуют только товар и услуги, для их выгрузки использую в обработке перед выгрузкой следующий код:

Если Источник.Услуга = "Да" Тогда
	Значение = "Товар";
Иначе 
	Значение = "Услуга"
КонецЕсли;


Но вот как проанализировать при загрузке не пойму.
10. perepetulichka 915 31.01.17 21:06 Сейчас в теме
Значение в данном случае немного не то.
Пример использования "Значение": у вас есть справочник "Организации", у которого и Коды и Наименование в двух разных системах по одной организации отличаются, тогда вы можете снять поиск с Кода, а в Наименование вписываете Значение = "ООО Ромашка"; (то Наименование, которое есть в базе-приемнике). И тогда при загрузке система найдет организацию с наименованием "ООО Ромашка".

Насколько я понимаю, свойство ".Услуга" вы берете у какого-то реквизита, например "Номенклатура", которая выгружается.

Моё мнение, вам нужно в ПКО документа "После загрузки":
Пример:

Форма = Объект.Ссылка.ПолучитьФорму("ФормаДокумента");
Если Объект.Номенклатура.Услуга Тогда
ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Товар");
Иначе
ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Услуга");
КонецЕсли;

11. N_s_s 3 01.02.17 15:36 Сейчас в теме
Что то пошло не так:

Ошибка при вызове метода контекста (ПолучитьФорму): Элемент не выбран!
12. perepetulichka 915 01.02.17 15:59 Сейчас в теме
(11)
Форма = Объект.ПолучитьФорму("ФормаДокумента");
Если Объект.Номенклатура.Услуга Тогда 
Форма.ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Товар"); 
Иначе 
Форма.ЭлементыФормы.ВидНоменклатуры.СписокВыбора.Добавить("Услуга"); 
КонецЕсли;
13. perepetulichka 915 01.02.17 16:20 Сейчас в теме
Проверила в ЗУПе (обычные формы) по документу "Начисление по больничному листу", у нас на форме два реквизита: ПервыйГодРасчета, ВторойГодРасчета.
Всё норм записалось.



14. N_s_s 3 01.02.17 16:26 Сейчас в теме
ОписаниеОшибки = Ошибка при вызове метода контекста (ПолучитьФорму): Недопустимое значение параметра (параметр номер '1')

теперь вот так.. не понимаю сути того что пытаюсь сделать. Что в данном случае объект? источник?
15. perepetulichka 915 01.02.17 16:42 Сейчас в теме
(14) у вас это вообще документ? Возможно у вас справочник? ...тогда получайте форму справочника ("ФормаЭлемента").
Я привела для вас пример, на основании которого подстройте свой код.
Объект в данном случае - Объект.

Так же вы можете открыть файл выгрузки и ознакомиться с ним.
Событие происходит после загрузки, обратите внимание, в 4-ой строке я обращаюсь к процедуре общего модуля.

Ниже приведен кусок из моего xml файла:
<ПослеЗагрузки>Форма = Объект.ПолучитьФорму("ФормаДокумента");
Форма.ЭлементыФормы.ПервыйГодРасчета.Значение = 2040;
Форма.ЭлементыФормы.ВторойГодРасчета.Значение = 2060;
РаботаСДиалогамиЗК.ЗаписатьГодыРасчетаСреднего2011(Объект, Форма);</ПослеЗагрузки>
16. perepetulichka 915 01.02.17 16:57 Сейчас в теме
(14)
Что в данном случае объект?


Ссылка - указатель, Объект - объект (мы с ним работаем, мы у него изменяем значения и тп), это как бы основы.
ДокОбъект = СсылкаНаДок.ПолучитьОбъект();


Все, что вы хотели бы сделать с объектом, например из внешней обработки, вы можете вписать в событие "После загрузки".
17. N_s_s 3 02.02.17 11:39 Сейчас в теме
Попытался сам разобраться, но не очень получается. Давайте я ещё раз обрисую ситуацию.
У меня есть база источник, в ней у меня непосредственно нет видов номенклатуры, но есть элемент у справочника номенклатура "Услуга", если он установлен значит выгружаемый элемент услуга, если не установлен значит товар.
Есть база приемник, в ней у справочника номенклатура есть элемент вид номенклатуры, мне нужно каким то образом объяснить базе приемнику какой вид номенклатуры должен стать у загружаемого элемента.
Посмотрел через отладку событие после загрузки, не вижу возможности там присвоить, точнее не присвоить а там провести анализ, ведь там у нас только объект.
Если НЕ Объект.ЭтоГруппа Тогда 
			Если Услуга Тогда 
				Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000002");	
			Иначе 
				Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");	; 
			КонецЕсли;
КонецЕсли; 

Что за анализ должен здесь быть, как мне понять какой там вид на базе источнике?

или может мне при выгрузке как то присвоить можно значение
18. perepetulichka 915 02.02.17 14:38 Сейчас в теме
(17)
Если НЕ Объект.ЭтоГруппа Тогда 
            Если Объект.Номенклатура.Услуга Тогда 
                Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000002");    
            Иначе 
                Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");    ; 
            КонецЕсли;
КонецЕсли;
19. perepetulichka 915 02.02.17 15:00 Сейчас в теме
Или сразу в конвертации свойств Документа у ВидНоменклатуры укажите:

Если ОбъектКоллекции.Номенклатура.Услуга Тогда
Значение = "000000002";
Иначе
Значение = "000000001";
КонецЕсли;

Источник = "";
ИмяПКО = "ВидНоменклатуры";

Далее создайте правило для справочника "ВидыНоменлатуры".

У свойства "Код" установите:

Значение = Источник;
Свойство Наименование - отключите!
20. avz_1C 10 24.01.18 20:19 Сейчас в теме
21. allo4kapower 26.03.18 13:33 Сейчас в теме
Спасите пожалуйста)))
в источнике пусто, в приемнике есть пункт способы погашения задолженности,вид перечисление.
Я так понимаю мне нужно написать код в ПКС, но что писать вообще не пойму.
cloudspb; +1 Ответить
22. m.gimaev 24.04.21 07:06 Сейчас в теме
Ну почему нельзя поставить сразу миллиард лайков!!!!!
Спасибо огромное, одна строчка из этой статьи сберегла тонну нервов.

Спасибо еще раз!
perepetulichka; +1 Ответить
23. FistaLLIka 13.12.22 08:58 Сейчас в теме
Почему нельзя вот ТАК писать про конвертацию. Только эта статья помогла над пониманием и поиска решения задачи. Спасибо большое!
24. IVC_goal 227 22.02.23 15:17 Сейчас в теме
Здравствуйте. Стоит задача - Есть Правила обмена ЗУП 2.5 корп - БУХ 3.0. Загружаются из ЗУП проводки Док ОтражениеЗарплатыВРеглУчете. Необходимо в приемнике для всех проводок по Кредиту счета 76.41 поменять субконото1 на Контрагента который находится в приемнике (Бухгалтерия) =Справочники.Контрагенты.НайтиПоНаименованию("Расчеты по исполнительным листам"). Как корректно это сделать?
25. perepetulichka 915 22.02.23 15:33 Сейчас в теме
(24) практически ваш пример в другой моей статье: https://infostart.ru/1c/articles/597573/

Номер 8. Заголовок: Задать своё значение реквизиту табличной части в ПКС, использование Алгоритма, задать другое ПКО.

Примерно так:
Если ОбъектКоллекции.СчетКт.ПринадлежитЭлементу.. (в статье описано) Тогда
Значение = Справочники.Контрагенты.Найти..
КонецЕсли;

Иначе я так полагаю описывать не надо. Другими словами - иначе стандартное значение.
26. perepetulichka 915 22.02.23 15:35 Сейчас в теме
(24) если у вас подсчетов 76.41.1 или 76.42.2 нет, тогда не обязательно ПринадлежитЭлементу, можно просто сделать проверку на равенство.
27. IVC_goal 227 22.02.23 15:44 Сейчас в теме
(25) Да я смотрел этот пример. То есть, этот код "Перед выгрузкой", будет выполняться на стороне приемника и будет корректно найден контрагент в приемнике?
28. IVC_goal 227 22.02.23 15:47 Сейчас в теме
Если ОбъектКоллекции.СчетКт.Код = "76.41" Тогда

ИсполнитЛист = Справочники.Контрагенты.НайтиПоНаименованию("Расчеты по исполнительным листам");
Если ЗначениеЗаполнено(ИсполнитЛист) Тогда
Значение = ИсполнитЛист;
КонецЕсли;

КонецЕсли;
29. IVC_goal 227 22.02.23 15:49 Сейчас в теме
Рассейте мои сомнения по поводу поиска на стороне приемника
30. perepetulichka 915 22.02.23 16:27 Сейчас в теме
(28) ох да, вы правы.
Прошу прощения, давно не занималась обменами, не посмотрела.
Конечно нет, в вашем случае не так.

Вариантов вижу два.

Вариант 1 (не элегантный): в ПКО после загрузки обойти все записи табличной части и в нужных местах подменить.

Вариант 2: подменить контрагента при выгрузке. В ПКО Контрагентов снять галку поиска по индентификатору (гуиду), оставить код и наименование и в исходных данных передать Код и Наименование вашего контрагента.

В ПКС по контрагенту перед выгрузкой:
Если ОбъектКоллекции.СчетКт.Код = "76.41" Тогда
ИсходящиеДанные = Новый Структура (Рис. 16 выше)
ИсходящиеДанные.Код = "ВашКод";
ИсходящиеДанные.Наименование = "ВашеНаименование";
Иначе
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Код = Источник.Код;
ИсходящиеДанные.Наименование = Источник.Наименование;
КонецЕсли;
Показать


Но важно проверить, что для контрагента по ссылке ничего не сломается. Вероятно это ПКО где-то еще используется.



Вариант 3: Сделать два ПКО: Контрагент, КонтрагентОпределенный

Если ОбъектКоллекции.СчетКт.Код = "76.41" Тогда

ИсходящиеДанные = Новый Структура (Рис. 16 выше)
ИсходящиеДанные.Код = "ВашКод";
ИсходящиеДанные.Наименование = "ВашеНаименование";

ИмяПКО = "КонтрагентОпределенный";


Иначе
//тут уже структура не нужна, идем в обычный ПКО 

ИмяПКО = "Контрагент";

КонецЕсли;
Показать
31. IVC_goal 227 22.02.23 16:36 Сейчас в теме
(30) Вопрос по 1-му варианту. [в ПКО после загрузки обойти все записи табличной части и в нужных местах подменить.]. Подскажите как обратиться к табличной части ДокументСсылка.ОтражениеЗарплатыВУчете?
Прикрепленные файлы:
32. perepetulichka 915 22.02.23 17:18 Сейчас в теме
(31) это ваш объект.

Ниже вашего кода пишите:

Для каждого Запись Из Объект.НазваниеТабЧасти Цикл
Если Запись.СчетКт = ПланыСчетов.Хозрастченый.НазваниеСчета Тогда
Запись.СубконтоКт2 = Справочники.Контрагенты.НайтиПоНаименованию(".."); //у вас вероятно это СубконтоКт1
КонецЕсли;
КонецЦикла;

//самой не верится, что такое пишу...
//это очень очень дурной тон так делать ((
Показать
33. perepetulichka 915 22.02.23 17:19 Сейчас в теме
(32) НазваниеСчета посмотрите в предопределенных названиях плана счетов Хозрасчетный
34. perepetulichka 915 22.02.23 17:21 Сейчас в теме
(32) Какое именно у вас Субконто: СубконтоКт1 или СубконтоКт2 (или вообще 3) - так же в самом счете увидите.
На каком месте стоит - та и цифра. Стандартно их максимум 3.
35. IVC_goal 227 24.02.23 06:06 Сейчас в теме
(32) Третий вариант очень изящный. Но не очевидный для меня. Это ПКО делается для справочника "Контрагенты", но там же нет "ОбъектКоллекции" документа ОтражениеЗарплатыВУчете ЗУПРа. Или есть? [Если ОбъектКоллекции.СчетКт.Код = "76.41" Тогда], это условие будет корректно выполняться?
36. perepetulichka 915 27.02.23 10:30 Сейчас в теме
(35) в ПКС "Контрагенты" (в вашей табличной части) в ПКО "ОтражениеЗарплаты" вам нужно это писать.
Вообще рекомендую ознакомиться с принципами Конвертации.
1. В ПКО вы попадаете из ПКС. Если открыть ПКС там есть поле - "Правило конвертации", это и есть ПКО.
2. В ПКО вы попадаете из ПВД.

Источник - это сам Объект. Через Источник мы можем обратиться к реквизитам Объекта.
Источник.Организация, Источник.Дата..

ОбъектКоллекции - это запись той табличной части в ПКС которой нужно что-то проверить.
Если ОбъектКоллекции.СчетКт = ПланыСчетов.Хозрасчетный..
Оставьте свое сообщение