Работа с Конвертацией данных 1С 2.1

17.07.21

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

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

Для краткого ознакомления, что такое конвертация, можно перейти по ссылке: //infostart.ru/1c/articles/659090/

Для информации по формированию ПКС есть статья: //infostart.ru/1c/articles/413178/

 Просто классный тортик 

Настройки Конвертации

 

Методы Конвертации (слева на Рис.1: перед выгрузкой, перед загрузкой и тп.) обрабатываются раньше, чем в ПВД или ПКО. 

Рис. 1

 

Параметры конвертации.

Общая информация: Параметры - Структура, в которой хранятся переменные доступные во всех обработчиках.

 

Первый пример:

В плане обмена могут быть реквизиты и табличные части, которые заполняются при настройке обмена.

План обмена Зарплата -> Бухгалтерия Рис. 2 (режим Конфигуратор ЗУП 3.1):

Рис. 2

 

При этом в правилах обмена параметры не заданы:

Рис. 3

 

В обработчике "Перед получением измененных" добавим их значение в структуру "Параметры" (из плана обмена на Рис. 1).

Рис. 4

И далее можем обратиться к этой структуре "Параметры" из любого обработчика.

Рис. 5

 

Второй пример:

Параметры заданы в правилах (Рис.6).

Это типовые правила ЗУП 2.5 -> Бух 3.0, параметры ИНН и КПП заполняются программно в форме обработки "Выгрузка данных в бухгалтерскую программу" (режим Конфигуратор ЗУП 2.5). 

Далее Параметры используются при загрузке в БУХ 3.0.

Рис. 6

 

Перед загрузкой объекта выполняется проверка в ту ли базу загружаются данные. Если организация не найдена, происходит отмена загрузки (Рис.7):

Рис. 7

 

Пример отмены обмена с тестовой базой.

 

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

Рис. 8

 

ПВД

 

 Обработчик "Перед обработкой" в ПВД нужно использовать при способе выборки "Произвольный алгоритм" с обязательным переопределением параметра "ВыборкаДанных".

 

Первый пример:

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПриемНаРаботу.Ссылка КАК Ссылка,
	|	ПриемНаРаботу.Организация КАК Организация,
	|	ПриемНаРаботу.Сотрудник КАК Сотрудник,
	|	ПриемНаРаботу.ФизическоеЛицо КАК ФизическоеЛицо,
	|	ПриемНаРаботу.Должность КАК Должность,
	|	ПриемНаРаботу.ДатаПриема КАК ДатаПриема,
	|	ПриемНаРаботу.Начисления.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		Начисление КАК Начисление,
	|		ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
	|		Размер КАК Размер
	|	) КАК Начисления
	|ИЗ
	|	Документ.ПриемНаРаботу КАК ПриемНаРаботу";

Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда
	Отказ = Истина;
КонецЕсли;

ВыборкаДанных = Результат.Выгрузить();

Табличные части так же можно включить в запрос, в примере это табличная часть "Начисления."

Если в базе приемнике реквизиты называются иначе, их нужно назвать верными наименованиями после слова "КАК".

 

Второй пример:

Рис. 9

 

 В ПВД в обработчике "Перед выгрузкой", чтобы не выгружать непроведенные объекты, можно указать:

Отказ = Не Объект.Проведен;

 

 В ПВД в обработчике "Перед выгрузкой", чтобы не выгружать группы, можно указать:

Отказ = Объект.ЭтоГруппа;

 

 

ПКО/ПКС

 

 Установка своего Значения (Вариант 1).

В в табличной части документа "ПриемНаРаботуВОрганизацию" есть реквизит "ВидРасчета" для которого правилом конвертации является ПКО "ОсновныеНачисленияОрганизаций":

Рис. 10

 

Создавать новые ВидыРасчетов в базе загрузки из базы выгрузки я не хочу (отключаю поиск по "Коду", "Пометка на удаление" мне тоже не интересна), пытаюсь найти объекты по Наименованию:

Рис. 11

и в случае, если Наименование определенное, то присваиваю ему другое значение (другими словами. устанавливаю соответствие):

Рис. 12

 

 Установка своего Значения (Вариант 2).

Ситуация вторая, мне не интересно что было в источнике, я хочу просто задать своё конкретное значение.

Рис. 13

 

Наименование имеет тип "Строка", поэтому Значение задано строкой:

Рис. 14

 

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

Если условие "Получить из входящих данных" установлено у группы свойств (табличной части), тогда у самих свойств (реквизитов) этот флаг ставить не обязательно:

Рис. 15

 

Правило у СубконтоДт2 не указано, оно устанавливается программно:

Рис. 16

 

Обратиться к строке табличной части можно с помощью переменной "ОбъектКоллекции".

 

В алгоритме "ПолучитьПКОСубконтоПоТипуЗначения" прописаны ПКО для СубконтоДт2, поскольку в зависимости от счета второе субконто может быть любого типа.

 

Алгоритм "ПолучитьПКОСубконтоПоТипуЗначения" выглядит вот так:

Рис. 17

 

Если в результате получаем ИмяПКО = "", отключаем ПКС (Отказ = Истина;), удобно для случаев, когда в одном документе есть реквизит, а в другом - нет. Например, подобная ситуация возникает, если в одной настройке плана обмена ЗУП 2.5 установлен обмен с Бухгалтерией 7.7, а в другой - Бухгалтерия 3.0

 

 Несколько часто используемых строчек кода в ПКО.

Перед выгрузкой:

РежимЗаписи = "Проведение";

При загрузке:

Отказ = ОбъектНайден;

После загрузки:

Объект.Ответственный = Пользователи.ТекущийПользователь();

 

 Для кода можно воспользоваться следующим кодом:

Значение = ПривестиНомерКДлине(Источник.НомерДок,8);

 

 Найти ссылку в приёмнике, которой нет в источнике.

Пример приведён, чтобы показать все возможности конвертации.

Предположим, в источнике есть информация о табельном номере сотрудника, мне необходимо определить сотрудника:

Рис. 18

 

Вариант 1 приведен с целью, чтобы показать идею. Но, поскольку запрос в цикле - это зло, смотри Вариант 2 :)

В запросе установите галочку: 

Рис. 19

 

 Конвертация перечисления.

 

Вариант 1:

ПКО для перечисления не нужно, можно просто указать его Значение.

Рассмотрим простейший пример:

Рис. 20

ПКС такого перечисления:

Рис. 21

 

Вариант 2:

Пример, пол физлица. ПКО задано:

Рис. 22

 

 

В ПКО задаётся только конвертация значений (на закладке конвертация свойств - пусто):

Рис. 23

 Передать данные в параметр.

По ряду причин нужно передать какие-либо данные в приемник. В моём примере необходимо сформировать назначение платежа с указанием периода за который происходит оплата. В документе платежное поручение есть реквизит Дата, но она не соответствует периоду оплаты.

Рис. 24

 

Далее при загрузке используем код:

ПараметрыОбъекта.Получить("ИмяПараметра")

Рис. 25

 

 Использование параметра в табличной части.

 

В табличной части "ОтражениеВУчете" добавим параметр "ВидРезерва" и зададим ему нужное нам значение.

Рис. 26

 

Далее после загрузки объекта можем обратиться к параметрам любым способом.

Я привела два примера:

Рис. 27

Код из Рис. 27:

ТаблицаПараметровТовары = ПараметрыОбъекта["ОтражениеВУчетеТабличнаяЧасть"];

1. МассивПараметровИзТЧ = ТаблицаПараметровТовары.ВыгрузитьКолонку("ВидРезерва");

ИЛИ

2. ТЗОтражениеВУчете = Объект.ОтражениеВУчете.Выгрузить();
ТЗОтражениеВУчете.Колонки.Добавить("ВидРезерва",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(6)));
ТЗОтражениеВУчете.ЗагрузитьКолонку(ТаблицаПараметровТовары.ВыгрузитьКолонку("ВидРезерва"),"ВидРезерва");

 

 Выгрузка структуры в ПКС.

 

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

Пример:

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

Рис. 28

Если, условие перестаёт выполняться, "Договор контрагента" выгружается стандартным образом.

 

 Выгрузка по произвольному правилу.

Вдогонку выгрузки структур из пункта 15, рассмотрим следующий пример.

На основании документа "Отражение зарплаты в бухучете" в ЗУП 3.1 формируется одноимённый документ в БУХ 3.0.

Так же было принято решение формировать платежные поручения по алиментам и выплатам налогов в фонды.

Соответственно при повторной загрузке важно найти документ "Платежное поручение" в системе-приёмнике и логично, что не может быть несколько документов с одинаковым УИД.

 

Итак, в ПКО в обработчике "После выгрузки в файл" сформируем выгрузку налогов по каждому фонду:

Рис. 29

Весь код из Рис.29:

Если Источник.ВыгрузитьПлатежноеПоручениеВБухгалтерию Тогда
	
	ВходящиеДанные = Новый Структура;
	
	//ПФР
	ВходящиеДанные.Вставить("ВидНалога", "СтраховыеВзносы_ПФР_СтраховаяЧасть");
	ВходящиеДанные.Вставить("ВидНалоговогоОбязательства", "Налог");
	ВходящиеДанные.Вставить("УИДОтраженияИлиПеречисления", Источник.УИДОтраженияИлиПеречисления);
	ВходящиеДанные.Вставить("ИдентификаторДокумента", ""); 
	ВходящиеДанные.Вставить("НазначениеПлатежа", "");
	ВходящиеДанные.Вставить("СтавкаНДС", "");
	ПФР = Источник.НачисленнаяЗарплатаИВзносы.Итог("ПФРДоПредельнойВеличины") + Источник.НачисленнаяЗарплатаИВзносы.Итог("ПФРСПревышения");
	ВходящиеДанные.Вставить("СуммаДокумента", ПФР);
	ВходящиеДанные.Вставить("ВидПеречисленияВБюджет", "ИнойПлатеж");
	ВходящиеДанные.Вставить("ВидОперации", "ПеречислениеНалога");
	ВходящиеДанные.Вставить("ОчередностьПлатежа", 5);
	ВходящиеДанные.Вставить("ПеречислениеВБюджет", Истина);
	ВходящиеДанные.Вставить("Контрагент", "");
	ВходящиеДанные.Вставить("ПоследовательностьЗагружаемогоДокумента", 1);
	ВходящиеДанные.Вставить("ПериодРегистрации", Источник.ПериодРегистрации);
	ВыгрузитьПоПравилу(Источник,,ВходящиеДанные,,"ПлатежноеПоручение",,Ложь); 	
	
	//ФСС
	ВходящиеДанные.Вставить("ВидНалога", "СтраховыеВзносы_ФСС");
	ВходящиеДанные.Вставить("СуммаДокумента", Источник.НачисленнаяЗарплатаИВзносы.Итог("ФСС"));
	ВходящиеДанные.Вставить("ПоследовательностьЗагружаемогоДокумента", 2);
	ВыгрузитьПоПравилу(Источник,,ВходящиеДанные,,"ПлатежноеПоручение",,Ложь); 	
	
	//ФСС НС и ПЗ
	ВходящиеДанные.Вставить("ВидНалога", "СтраховыеВзносы_ФСС_НСиПЗ");
	ВходящиеДанные.Вставить("СуммаДокумента", Источник.НачисленнаяЗарплатаИВзносы.Итог("ФССНесчастныеСлучаи"));
	ВходящиеДанные.Вставить("ПоследовательностьЗагружаемогоДокумента", 3);
	ВыгрузитьПоПравилу(Источник,,ВходящиеДанные,,"ПлатежноеПоручение",,Ложь); 	
	
	//ФФОМС
	ВходящиеДанные.Вставить("ВидНалога", "СтраховыеВзносы_ФФОМС");
	ВходящиеДанные.Вставить("СуммаДокумента", Источник.НачисленнаяЗарплатаИВзносы.Итог("ФФОМС"));
	ВходящиеДанные.Вставить("ПоследовательностьЗагружаемогоДокумента", 4);
	ВыгрузитьПоПравилу(Источник,,ВходящиеДанные,,"ПлатежноеПоручение",,Ложь); 	
	
	//Алименты
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.Контрагент КАК Контрагент,
		|	ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.Сумма КАК Сумма,
		|	ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.Ссылка.ПериодРегистрации КАК ПериодРегистрации
		|ИЗ
		|	Документ.ОтражениеЗарплатыВБухучете.УдержаннаяЗарплата КАК ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата
		|ГДЕ
		|	ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.Ссылка = &Ссылка
		|	И ОтражениеЗарплатыВБухучетеУдержаннаяЗарплата.ВидОперации В(&ВидыОпераций)";
	
	ВидыОпераций = Новый Массив;
	ВидыОпераций.Добавить(Перечисления.ВидыОперацийПоЗарплате.АлиментыПрочиеИсполнительныеЛисты);
	ВидыОпераций.Добавить(Перечисления.ВидыОперацийПоЗарплате.АлиментыПрочиеИсполнительныеЛистыКонтрагенты);
	Запрос.УстановитьПараметр("ВидыОпераций", ВидыОпераций);
	Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	ПоследовательностьЗагружаемогоДокумента = 5;
	
	Пока Выборка.Следующий() Цикл
		ВходящиеДанные.Вставить("СуммаДокумента", Выборка.Сумма);
		ВходящиеДанные.Вставить("Контрагент", Выборка.Контрагент);
		ВходящиеДанные.Вставить("ВидОперации", "ПрочиеРасчетыСКонтрагентами");
		ВходящиеДанные.Вставить("ОчередностьПлатежа", 1);
		ВходящиеДанные.Вставить("ПеречислениеВБюджет", Ложь);
		ТекстСумма = "Сумма " + Формат(Выборка.Сумма, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");
		НазначениеПлатежа = "Перечисление алиментов из зарплаты сотрудника " + 
			Выборка.ФизическоеЛицо+" за " + НРег(Формат(Выборка.ПериодРегистрации, "ДФ='ММММ yyyy'")) + Символы.ПС + 
			ТекстСумма + Символы.ПС + 
			"Без налога (НДС)";
		ВходящиеДанные.Вставить("НазначениеПлатежа", НазначениеПлатежа);
		ВходящиеДанные.Вставить("ПоследовательностьЗагружаемогоДокумента", ПоследовательностьЗагружаемогоДокумента);
		ВходящиеДанные.Вставить("СтавкаНДС", "БезНДС");
		ВходящиеДанные.Вставить("ПериодРегистрации", Источник.ПериодРегистрации);
		ВыгрузитьПоПравилу(Источник,,ВходящиеДанные,,"ПлатежноеПоручение",,Ложь);
		ПоследовательностьЗагружаемогоДокумента = ПоследовательностьЗагружаемогоДокумента + 1;
	КонецЦикла;
		
КонецЕсли;

 

В ПКО "Платежное поручение" часть ПКС получаем из входящих данных:

Рис. 30

 

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

УИДОтраженияИлиПеречисления                     : Строка(36)

ПоследовательностьЗагружаемогоДокумента   : Число(2,0)

 

В обработчике "Поля поиска" указан следующий код (чтобы поля были доступны в обработчике они обязательно должны быть отмечены флагом "Поиск"): 

 

ОбъектНайден = Ложь;

Если ЗначениеЗаполнено(ПараметрыОбъекта.Получить("УИДОтраженияИлиПеречисления")) Тогда
	
	ПВХ_УИДОтраженияИлиПеречисления = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("ИдентификаторДляФормул", "УИДОтраженияИлиПеречисления");
	ПВХ_ПоследовательностьЗагружаемогоДокумента = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("ИдентификаторДляФормул", "ПоследовательностьЗагружаемогоДокумента");
	
	Знач_УИДОтраженияИлиПеречисления = Строка(ПараметрыОбъекта.Получить("УИДОтраженияИлиПеречисления"));
	Знач_ПоследовательностьЗагружаемогоДокумента = ПараметрыОбъекта.Получить("ПоследовательностьЗагружаемогоДокумента");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДополнительныеСведения.Объект КАК Объект
	|ПОМЕСТИТЬ ВТ_Объект
	|ИЗ
	|	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
	|ГДЕ
	|	ДополнительныеСведения.Свойство = &ПВХ_УИДОтраженияИлиПеречисления
	|	И ДополнительныеСведения.Значение = &Знач_УИДОтраженияИлиПеречисления
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ДополнительныеСведения.Объект КАК Объект
	|ИЗ
	|	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
	|ГДЕ
	|	ДополнительныеСведения.Свойство = &ПВХ_ПоследовательностьЗагружаемогоДокумента
	|	И ДополнительныеСведения.Значение = &Знач_ПоследовательностьЗагружаемогоДокумента
	|	И ДополнительныеСведения.Объект В
	|			(ВЫБРАТЬ
	|				ВТ_Объект.Объект КАК Объект
	|			ИЗ
	|				ВТ_Объект КАК ВТ_Объект)";
	
	Запрос.УстановитьПараметр("ПВХ_УИДОтраженияИлиПеречисления", ПВХ_УИДОтраженияИлиПеречисления);
	Запрос.УстановитьПараметр("ПВХ_ПоследовательностьЗагружаемогоДокумента", ПВХ_ПоследовательностьЗагружаемогоДокумента);
	Запрос.УстановитьПараметр("Знач_УИДОтраженияИлиПеречисления", Знач_УИДОтраженияИлиПеречисления);
	Запрос.УстановитьПараметр("Знач_ПоследовательностьЗагружаемогоДокумента", Знач_ПоследовательностьЗагружаемогоДокумента);
	
	СсылкаНаОбъект = Документы.ПлатежноеПоручение.ПустаяСсылка();
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		СсылкаНаОбъект = Выборка.Объект;
	КонецЕсли;
	
	ПрекратитьПоиск = Истина;
	
Иначе	
	
	СсылкаНаОбъект = Документы.ПлатежноеПоручение.ПолучитьСсылку(ПараметрыОбъекта.Получить("ИдентификаторДокумента"));
	Если СсылкаНаОбъект.ПолучитьОбъект() = Неопределено Тогда
		
		СсылкаНаОбъект = Неопределено; 
		СвойстваПоиска.Вставить("{УникальныйИдентификатор}", ПараметрыОбъекта.Получить("ИдентификаторДокумента"));
		ПрекратитьПоиск = Истина;
		
	КонецЕсли;
	
КонецЕсли;

Параметр "ИдентификаторДокумента" нужен для другого документа, пример которого нет смысла приводить. 

 

В обработчике "После загрузки", если объект не найден нужно записать дополнительные сведения по нему:

Если НЕ ОбъектНайден И ЗначениеЗаполнено(ПараметрыОбъекта.Получить("УИДОтраженияИлиПеречисления")) Тогда
		
	Объект.Записать();
		
	ПВХ_УИДОтраженияИлиПеречисления = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("ИдентификаторДляФормул", "УИДОтраженияИлиПеречисления");
	ПВХ_ПоследовательностьЗагружаемогоДокумента = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("ИдентификаторДляФормул", "ПоследовательностьЗагружаемогоДокумента");
		
	Знач_УИДОтраженияИлиПеречисления = ПараметрыОбъекта.Получить("УИДОтраженияИлиПеречисления");
	Знач_ПоследовательностьЗагружаемогоДокумента = ПараметрыОбъекта.Получить("ПоследовательностьЗагружаемогоДокумента");
		
	Если ЗначениеЗаполнено(ПВХ_УИДОтраженияИлиПеречисления) Тогда
		МЗ = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
		МЗ.Объект = Объект.Ссылка;
		МЗ.Свойство = ПВХ_УИДОтраженияИлиПеречисления; 
		МЗ.Значение = Знач_УИДОтраженияИлиПеречисления;
		МЗ.Записать();
	КонецЕсли;
		
	Если ЗначениеЗаполнено(ПВХ_ПоследовательностьЗагружаемогоДокумента) Тогда
		МЗ = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
		МЗ.Объект = Объект.Ссылка;
		МЗ.Свойство = ПВХ_ПоследовательностьЗагружаемогоДокумента; 
		МЗ.Значение = Знач_ПоследовательностьЗагружаемогоДокумента;
		МЗ.Записать();
	КонецЕсли;	
		
КонецЕсли;

 

 Поля поиска (подробнее).

 

Пример 1

Чтобы поля были доступны в обработчике "Поля поиска" они обязательно должны быть отмечены флагом "Поиск" (отмечены стрелкой на рисунке ниже): 

 

В обработчике укажем следующий код:

 

При этом создавать объект мне не нужно, мне нужно его просто найти.

 

Пример 2

Типовые правила ЗУП 3.1 -> БУХ 3.0

 

Обработчик "Поля поиска":

ПоляПоискаМассив = Новый Массив;
Если ЗначениеЗаполнено(СвойстваПоиска["СтраховойНомерПФР"]) Тогда
	ПоляПоискаМассив.Добавить("СтраховойНомерПФР");
КонецЕсли;
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
	ПоляПоискаМассив.Добавить("ИНН");
КонецЕсли;
Если ЗначениеЗаполнено(СвойстваПоиска["ДатаРождения"]) Тогда
	ПоляПоискаМассив.Добавить("Наименование,ДатаРождения");
КонецЕсли;

Если НомерВариантаПоиска <= ПоляПоискаМассив.Количество() Тогда
	СтрокаИменСвойствПоиска = ПоляПоискаМассив[НомерВариантаПоиска-1];
Иначе	
	ПрекратитьПоиск = Истина;
КонецЕсли;

 

 Общая информация

 

Запросы размещаются на закладке "Алгоритмы\Запросы" без кавычек.

 

Чтобы получить текст запроса, нужно указать код:

ТекстЗапроса = Запросы.Прием.Текст;

 

Для выполнения алгоритма:

Выполнить(Алгоритмы.ДатаЗапретаВыгрузки);

 

Если Алгоритм используется при загрузке, это важно указать, чтобы он выгрузился в файл обмена.

 

Конвертация документа "Перенос данных", или, например "Операция" (Перенос движений документа).

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

Далее в конвертации данных:

Галочками отметьте необходимые регистры, по которым хотите перенести движения, они будут добавлены так же, как и табличные части документа. Менять стандартные правила выгрузки не нужно (то есть не нужно писать никаких запросов), движения будут выгружены автоматически.

конвертация данных ключевые особенности работы перечисления пример работа с конвертацией структура в пкс

См. также

SALE! 20%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 22338 руб.

12.06.2017    141466    798    297    

419

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    166426    332    277    

373

SALE! 10%

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

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

35000 31500 руб.

15.12.2021    23985    169    51    

127

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.19.x).

35000 31500 руб.

23.07.2020    51186    228    69    

185

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    36568    94    66    

89

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    171155    303    257    

378

SALE! 15%

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 13005 руб.

18.02.2016    186854    589    509    

526

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

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

12000 руб.

25.09.2016    80633    312    250    

264
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sergafan10 17.03.17 08:45 Сейчас в теме
Становится мене актуальным, в связи с КД 3.
2. TODD22 19 17.03.17 08:49 Сейчас в теме
(1)И что там стало менее актуально?
КД 3 это не замена КД2.
valeriy-vm; fuser; t278; orfos; betexpert; VickWood; SinglCOOLer; Rabin; ikalmykia; HAMMER_59; EvgenAEY; user1050439; LeXXeR; mark_oilbass; elga2012; always_newbie; mifort; fomix; Gendelf; kolya_tlt; sagatel; vovan_victory; artmakc; user774630; smit1c; wowik; Артано; Kesak; red80; OVladius; pm74; DrAku1a; Dementor; serg_infostart; Zeskord; maxdmt; dj_serega; Westbound; +38 Ответить
54. cdiamond 235 15.03.23 09:55 Сейчас в теме
(2) Пишу из 2023 года. Просто ваш тезис до сих пор повторяетя тысячу раз в миллионах статей и многие новички ошибочно начинают изучать древний КД 2.1.
На самом деле сейчас КД 3.1 это замена и КД 2.1 и КД 3.0 (два в одном)
56. nerby 01.10.24 15:05 Сейчас в теме
(54) Скоро 2025, а кд2 еще используют)
3. dj_serega 393 17.03.17 09:41 Сейчас в теме
(1) КД3 еще лет 5 будет раскручиваться.
А еще остались 7.7 и нужно делать выгрузку из них... Поэтому... Пока жива 7.7 и будет жить КД2 ;)
13. MaxS 2944 05.04.17 04:45 Сейчас в теме
(3)
Поэтому... Пока жива 7.7 и будет жить КД2
Не факт. )) Уже появилась одна публикация для связи 1С 7.7 через EnterpriseData.
Но всё равно КД2 останется, т.к. возможности безграничны, в отличие от КД3, где ограничен формат.
4. unichkin 1579 17.03.17 10:50 Сейчас в теме
в п.1 лишнее
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
	Отказ = Истина
КонецЕсли;


ВыборкаДанных = РезультатЗапроса.Выгрузить();

Можно сразу:
ВыборкаДанных = Запрос;


п.2
Не понял, зачем вводить буферную переменную, и выгружать результата запроса.

Запросы.Прием.УстановитьПараметр("ПустаяДата", Дата(1,1,1));
Запросы.Прием.УстановитьПараметр("ДатаОкончания",	КонецДня(ДатаОкончания));
ВыборкаДанных =Запросы.Прием;


не нужны никакие отказы при пустом результате. Он если пустой, и так ничего не будет.

в п.5 запрос в цикле + см. п.2

п.6 тяжеловато
ОбъектКоллекции.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.РасчетыПоСоциальномуСтрахованию)

п.7 не понял смысла
"При загрузке:
Отказ = ОбъектНайден;"
- т.е. если объект найден, то не обновлять? Там галка есть у ПКО "Не замещать существующие объекты в приемнике..."
п.8 - а как эти объекты уйдут из таблицы регистрации изменений? Их туда и помещать не надо, если они не должны выгружаться.

Почему-то когда дело касается КД люди сразу забывают о том что такое точка. Вообще, все это довольно субъективно.
5. unichkin 1579 17.03.17 11:21 Сейчас в теме
Про п.1 - зачеркнуть, это дубль про п.2
6. d4rkmesa 17.03.17 12:30 Сейчас в теме
Плохо все-таки писать РежимЗаписи = "Проведение" в обработчике, нужно пользоваться механизмом отложенного проведения, либо вынести проведение всех документов отдельно в обработчик "после загрузки данных", хотя для каких-то простых документов сойдет. Остальное имеет право на жизнь, нюансы реализации не так важны в целом.
betexpert; sagatel; jobkostya1c_ERP; CSiER; +4 Ответить
7. vano-ekt 124 17.03.17 21:44 Сейчас в теме
в обработчики ПКС/ПВД понапихают запросов, а потом ждут пока обмен час пройдет
Rollam; корум; rabid_otter; DrAku1a; unichkin; dj_serega; +6 2 Ответить
8. serg_infostart 390 21.03.17 15:19 Сейчас в теме
(7) в ПКС не увидел, что понапихано...
В ПВД оно само собой разумеющееся.

(0) не хватает описания обработчиков Поля поиска.
jobkostya1c_ERP; +1 Ответить
10. Zhilyakovdr 147 22.03.17 11:39 Сейчас в теме
(7) Запросы в ПВД вполне нормальное явление, в ПКС нет.
Гляньте типовые обмены, там и не такое увидите.
betexpert; jobkostya1c_ERP; Дмитрий74Чел; +3 Ответить
24. alex_bitti 98 09.09.19 11:11 Сейчас в теме
(7) обмен идет часами в основном из-за итогов в регистрах, в частности в бух долго грузятся реализации товаров при включенных итогах, запросы в правилах работают также как и стандартная выгрузка/загрузка практически, в стандартной тоже можно напихать параметров))
9. Zhilyakovdr 147 22.03.17 11:38 Сейчас в теме
ТекстЗапроса = Запросы.ОтражениеЗарплатыВРеглУчете.Текст;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Организация",	Данные.Организация);


меняем на

Запрос = Запросы.ОтражениеЗарплатыВРеглУчете;
Запрос.УстановитьПараметр("Организация",	Данные.Организация);


а можно и на
Запросы.ОтражениеЗарплатыВРеглУчете.УстановитьПараметр("Организация",	Данные.Организация);
11. Zhilyakovdr 147 22.03.17 11:42 Сейчас в теме
Все что вы описали в статье можно легко найти в типовых правилах и примерах в самой КД.
Пора потихоньку КД3 пользовать
12. Lem0n 425 04.04.17 23:10 Сейчас в теме
Удобное использование шаблонов обработчиков реализовано в http://infostart.ru/public/398595/ (см. видео с 9:46 и с 16:35),
14. Поручик 4692 15.05.17 11:09 Сейчас в теме
КД 2 ещё долго будет жить, потому что с ней намного легче накидать правила переноса. Попробуйте это сделать быстро с КД 3.
and03122008@gmail.com; betexpert; fomix; vovan_victory; wowik; jobkostya1c_ERP; lefthander; +7 Ответить
15. q_i 584 16.05.17 15:52 Сейчас в теме
П.10, Вариант 2: какой текст запроса у Запросы.ПоискСотрудника2.Текст?
Есть подозрение, что "Объект.Работники.ЗагрузитьКолонку(Результат, "Сотрудник")" потенциально может загрузить сотрудников в неправильном порядке.
16. vovan_victory 65 30.01.19 10:11 Сейчас в теме
П.5. А зачем в цикле создавать объект запрос?
Для каждого СтрокаТД Из ТаблицаДанных Цикл

	ТаблицаПроводок = СтрокаТД.ОтражениеВУчете;  //1
	
	Для каждого СтрокаТП  Из ТаблицаПроводок Цикл
		
		Если МассивСчетовДТ<>Неопределено И МассивСчетовДТ.Найти(СтрокаТП.СчетДт) <> Неопределено И НЕ СтрокаТП.ПодразделениеДт.Родитель.Пустая() Тогда	//2				
			Запрос = Новый Запрос;


Может лучше:
//Создаем до цикла 1 раз
Запрос = Новый Запрос;

Для каждого СтрокаТД Из ТаблицаДанных Цикл

	ТаблицаПроводок = СтрокаТД.ОтражениеВУчете;  //1
	
	Для каждого СтрокаТП  Из ТаблицаПроводок Цикл
		
		Если МассивСчетовДТ<>Неопределено И МассивСчетовДТ.Найти(СтрокаТП.СчетДт) <> Неопределено И НЕ СтрокаТП.ПодразделениеДт.Родитель.Пустая() Тогда	//2				
		//А в цикле уже устанавливаем текст, параметры и выполняем
                //Да и текст запроса, если не меняется, тоже выносим из цикла.
			Запрос.Текст = Запросы.ПодразделениеОрганизацииРодитель.Текст;
			Запрос.УстановитьПараметр("Ссылка", СтрокаТП.ПодразделениеДт);
			РезультатЗапроса = Запрос.Выполнить();
Показать
17. perepetulichka 909 30.01.19 13:31 Сейчас в теме
(16) Это понятно, пользуюсь таким способом :) Пункт 5 показан просто как один из способов. Спасибо за комментарий!
18. AlexeyK1 14 16.04.19 15:14 Сейчас в теме
Здравствуйте, подскажите пожалуйста.
настраиваю конвертацию между двумя разными "переписанными" конфигурациями(УТ -> WMS) возникла проблема со справочниками.
в источнике
Номенклатура + ЕдиницаИзмерения
переносится в связку
Номенклатура + ЕдиницаИзмерения1 + ЕдиницаИзмерения2 вторая подчиненна первой, а Владелец у них один,
так вот когда переносим новую Номенклатуру не могу придумать как ЕдиницуИзмерения2 подчинить ЕдиницеИзмерения1 ведь на момент прогона ссылки у меня на ЕдиницуИзмерения1 не существует (если прогнать 2 раза "Загрузку", то все пучком, понимаю что это неправильно)
ЕдиницаИзмерения1 и ЕдиницаИзмерения2 переносятся не по ссылке, а создаются
Может кто то сталкивался с подобной проблемой, и есть возможность это побороть?
19. perepetulichka 909 16.04.19 16:31 Сейчас в теме
(18) я так понимаю, если вы из ЕдиницаИзмерения формируете ЕдиницаИзмерения1 и ЕдиницаИзмерения2, то все это делается в одном алгоритме.
Запросом проверяем есть ли объекты в системе (судя по всему ГУИД с источником или у одного элемента или не совпадает совсем, для удобства кстати можно в приёмнике добавить реквизит "ГУИДИсточника" объекту и по нему искать).
Затем если их нет, создаём первый, записываем его и второму Владельцем заполняем ссылку.

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

Или показывайте правила, как вы их создаёте.
20. AlexeyK1 14 17.04.19 10:41 Сейчас в теме
вот в ПКО при выгрузке Номенклатуры делаю выгрузить по правилу сразу создаю 2 ЕдиницыХранения, понимаю что такая ситуация что у меня нету GUID для этих элементов был бы GUID я бы его пихнул в сыль родителя второй ЕдиницыХранения и всё пучком было бы
ВходящиеДанные = Новый Структура;
ВходящиеДанные.Вставить("Владелец", Источник);
ВходящиеДанные.Вставить("Наименование", "Пар");
ВходящиеДанные.Вставить("Код", "0000000001");
ВходящиеДанные.Вставить("Родитель", "");
ВходящиеДанные.Вставить("Коэффициент", 1);
ВходящиеДанные.Вставить("КоэффициентКИС", Источник.абРазмерныйРяд.Количество);
ВходящиеДанные.Вставить("МодельСкладскогоУчета", "001");
ВходящиеДанные.Вставить("АктивнаяОбластьОтбора", "000000001");
ВходящиеДанные.Вставить("ОбластьРазмещения", "000000001");
ВходящиеДанные.Вставить("КлассЕдиницыХранения" ,"715");
ВходящиеДанные.Вставить("ОтборПоДатам" ,"НеВыполнять");
ВходящиеДанные.Вставить("РучноеРазмещение" ,"Истина");
ВыгрузитьПоПравилу(,,ВходящиеДанные,,"усЕдиницыХранения");


ВходящиеДанные1 = Новый Структура;
ВходящиеДанные1.Вставить("Наименование", "Короб(" + Строка(ВходящиеДанные.КоэффициентКИС) + ")");
ВходящиеДанные1.Вставить("Владелец", Источник);
ВходящиеДанные1.Вставить("Родитель",  "0000000001"); //понимаю что тут ссыль должна быть ВходящиеДанные, но какая ? прост вставить 
                                                                                 // ВыгрузитьПоПравилу(,,ВходящиеДанные,,"усЕдиницыХранения");?
ВходящиеДанные1.Вставить("Код", "0000000001");
ВходящиеДанные1.Вставить("Коэффициент", ВходящиеДанные.КоэффициентКИС);
ВходящиеДанные1.Вставить("КоэффициентКИС", ВходящиеДанные.КоэффициентКИС);
ВходящиеДанные1.Вставить("МодельСкладскогоУчета", "001");
ВходящиеДанные1.Вставить("АктивнаяОбластьОтбора", "000000001");
ВходящиеДанные1.Вставить("ОбластьРазмещения", "000000001");
ВходящиеДанные1.Вставить("КлассЕдиницыХранения" ,"778");
ВходящиеДанные1.Вставить("ОтборПоДатам" ,"НеВыполнять");
ВходящиеДанные1.Вставить("РучноеРазмещение" ,"Истина");

ВыгрузитьПоПравилу(,,ВходящиеДанные1,,"усЕдиницыХраненияКороба");

Показать


Сейчас понимаю что первую ЕдиницуХранения можно было привязать к ЕдиницеИзмерения в базе Источнике и его GUID юзать... но поезд ушел....
теперь походу придётся правила переписывать и завязываться на ЕдиницуИзмерения для первой ЕдиницыХранения... с проверкой на существование Единицы хранения старыми правилами
21. perepetulichka 909 17.04.19 11:51 Сейчас в теме
(20) но смотрите, вы перед выгрузкой по правилу выгружаете ЕдиницаИзмерения1 и ЕдиницаИзмерения2, а затем самим ПКО формируете Источник.
Следовательно в файле у вас сначала ЕдиницаИзмерения1 и ЕдиницаИзмерения2, а потом сама Номенклатура (владелец), система все записывает последовательно.
Как насчет переместить ваши структуры в модуль "После выгрузки"?
22. perepetulichka 909 17.04.19 11:55 Сейчас в теме
(21) правильнее в модуль "После выгрузки в файл".

Условия возникновения события
Событие выполняется после выгрузки объекта в файл обмена. Может быть использован для выгрузки дополнительной информации по выгруженному объекту в файл обмена. При этом информация будет записана в файл обмена после выгруженного объекта.
23. AlexeyK1 14 17.04.19 14:47 Сейчас в теме
25. alex_bitti 98 09.09.19 11:14 Сейчас в теме
отлично написано! такую бы статью лет 6 назад прочитать бы мне)) большинство приемчиков пришлось придумывать самому, похоже у всех так)
26. wowan ht 5 13.11.19 11:12 Сейчас в теме
Здравствуйте.
КД версия 2
Задача: выгрузить из источника записи Регистра сведений и в приемнике создать Документ на каждую запись.
В источнике отсутствует такой объект.
Создал ПВД с пустым объектом и произвольным запросом, результат которого попадает в ВыборкаДанных
Далее создал ПКО также с пустым источником, реквизиты приемника заполняю из выборки.
При использовании обработки "Универсальный обмен данными" все выгрузки-загрузки отрабатывают без проблем.

В источнике создал план обмена, включил его в подсистему Синхронизация (обмен данными), загрузил правила.
При попытке выгрузки возникает ошибка, что такой объект не найден по типу в метаданных.

Можно как-то выкрутиться из данной ситуации?

Пробовал создавать ОписаниеОбъекта в ПВД - не прокатило
Пробовал вставлять запрос в обработчик "Перед получением измененных" - та же картина

Есть еще варианты?
Заранее спасибо
27. Shecurok 21.04.21 14:57 Сейчас в теме
Здравствуйте. Очень нужен Ваш совет, просто прочтите и скажите пожалуйста какой пункт мне "курить" из Вашего гайда)

Сначала создается в торговле заказ, он переносится в бух как счет на оплату. Потом загружаются платежки из банка (в бух), туда проставляется счет на оплату и это платежка переносится в торговлю. И вот в этой платежке надо как то проставить запись реквизита из этой же торговли (реквизит = заказ, что мы переносили). И из бух обратно счет на оплату уже соответственно никак не переносится.

Конфигурации БП 2.0 и УТ 10.3
28. perepetulichka 909 21.04.21 16:39 Сейчас в теме
(27) это обработка ПКС (https://infostart.ru/1c/articles/413178/), в качестве Значения у вас будет ссылка на документ (в мои примерах справочник, но суть та же).
Как вы пишите, в самой платежке у вас есть Счет на оплату.
Соответственно при загрузке Платежки в УТ 10.3 по реквизиту "Заказ" сделайте ПКО "Счет на оплату" и по сути обработка реквизитов документа "Счет на оплату" в ПКО вам не нужна (хватит номер и дата), у вас один УИД и новых документов в УТ 10.3 вы создавать не будете, вам важно только найти ссылку на загружаемый документ в УТ 10.3 для заполнения реквизита.
Shecurok; +1 Ответить
29. Shecurok 21.04.21 16:43 Сейчас в теме
(28) спасибо Вам большое) выручаете меня уже второй раз (первый был в 19г). По результатам отпишусь
30. perepetulichka 909 21.04.21 16:47 Сейчас в теме
31. Shecurok 21.04.21 18:08 Сейчас в теме
(30) Вы меня просто спасли! Я несколько дней искал решение как это реализовать, искал Вашу статью (потому что помнил, как Вы мне помогли), нашел, спросил ииии Вы мне дали подробный и развернутый ответ. Благодаря Вам и Вашим статьям я сделал ненавистную мне конвертацию. Спасибо огромное. Большое человеческое Спасибо. Плюсики везде поставил)
perepetulichka; +1 Ответить
32. sml 41 17.05.21 12:58 Сейчас в теме
Доброго дня,
правильно ли я понимаю, что для Параметра в ТЧ при получении ПараметрыОбъекта("<ИмяТЧ>ТабличнаяЧасть") создается таблица значений, колонки которой соответствуют именам параметров, добавленных в ПКО для этой ТЧ?
Совпадают ли индексы этой таблицы с индексами ТЧ объекта?
33. perepetulichka 909 17.05.21 14:13 Сейчас в теме
(32) Добрый день, не пробовала разобрать получаемую таблицу значений параметров, но думаю да, в ней только колонки с именами параметров, указанных в ПКС группы свойств "ОтражениеВУчете" (из примера), касательно индексов, да, они совпадают. Пользовалась много раз Параметрами в табличной части, и если значение пустое, оно все равно записывается.
34. sml 41 17.05.21 16:46 Сейчас в теме
(33) в Вашем примере не указан флаг "Получать из входящих данных" для параметра ТЧ
35. perepetulichka 909 17.05.21 16:58 Сейчас в теме
(34) Так, и? Во-первых, при конвертации свойств табличной части это не обязательно, во-вторых, не смущает код, отмеченный картинкой - листочек с зеленой галочкой по колонке "Источник"? С чего я обязательно должна их получать из ВходящихДанных?))
36. sml 41 17.05.21 17:01 Сейчас в теме
(35) такая настройка приводит к ошибке обмена:
Ошибка получения значения свойства подчиненного объекта (по имени свойства приемника)
Надо или указать Источник - Свойство, либо ставить флаг и передавать Входящие данные
37. sml 41 17.05.21 17:35 Сейчас в теме
(35) Если Вы не используете данных источника, что странно для ТЧ, поскольку для разных строк данные источника будут различны, тогда не вопрос, ошибки не будет, а если обращаться к источнику, то будет ошибка
38. Aleksey_Ekb 19.06.21 13:24 Сейчас в теме
Здравствуйте! По последнему пункту:
Переношу из одной БП в другую БП "Операции, введенные вручную".
Флаг "Выгружать движения только у документов без проведения" поставил.
В ПКО добавил "ОперацияБух".
В ПКС "ОперацияБух" добавил группу "Хозрасчетный" (Тип: Набор движений регистра бухгалтерии),
в этой группе помощником добавил все доступные свойства.
Информацию о выгруженных движениях вижу в файле обмена.
Но, в базе приемнике в "Журнал проводок; Бухгалтерский и налоговый учет" они не записываются.
Что не доделал, какая может быть причина?
39. perepetulichka 909 28.06.21 08:56 Сейчас в теме
(38) Здравствуйте! Была в отпуске, и не припомню, чтобы переносила бух. проводки. Как удалось решить вопрос?
40. Aleksey_Ekb 28.06.21 13:01 Сейчас в теме
Через КД 2.1 решить вопрос не удалось. Пришлось писать внешнюю обработку.
41. perepetulichka 909 28.06.21 14:16 Сейчас в теме
(40) скинете ваши правила? Здесь можно прикрепить файл в чате.
42. user643882_maxrad 10.08.21 15:42 Сейчас в теме
Други. Может кто подскажет, где копать. Есть конвертация из УТ 10.3 в БП 2.5 и конвертация из УТ10.3 в Бух 3.0. В обоих конвертациях есть параметр ДатаНачалаВыгрузкиДокументов. При переносе из УТ в бух 3.0 можно этот параметр не указывать, достаточно в бух 3.0 установить общую дату редактирования документов. Тогда при выгрузке документов документы прошлого периода в бух базе редактироваться не будут, в новых документах выгрузятся только ссылки на старые документы. В при выгрузке в БП 2.5 параметр установка общей даты редактирования почему то игнорируется и старые документы перезаписываются ,что не есть гуд, т.к. бухгалтера уже поправили документы прошлого периода в базе и затирать их изменения не надо. Тогда приходится в конвертации указать датуначала выгрузки документов, но тогда при выгрузке реализации и указания например партии списания конкретного документа оприходования старого периода он не передается, и получается накладка - в УТ списывается одна партия - а в бух другая. Как сделать при передаче из УТ в бух 2.0 как и в бух 3.0- если стоит дата запрета редактирования - то документы старого периода передаются только ссылками? Надеюсь понятно объяснил
43. perepetulichka 909 10.08.21 16:59 Сейчас в теме
(42) друг, не понятно:
1) Имя документа?
2). "в БП 2.5 параметр установка общей даты редактирования почему то игнорируется и старые документы перезаписываются" - ну может ваш документ не входит в список блокируемых для изменения?
3) "Как сделать при передаче из УТ в бух 2.0 как и в бух 3.0- если стоит дата запрета редактирования - то документы старого периода передаются только ссылками?" - ну здесь поможет включение документа в список блокируемых.

Проверьте подписку на событие, пример ЗУП 2.5: "ПередЗаписьюДокументаДатаЗапретаРедактирования", в подписке есть Источник, в котором указаны документы, проверьте подобную подписку и есть ли ваш документ в источнике.
44. user643882_maxrad 11.08.21 08:19 Сейчас в теме
1) Например, реализация, в которой передается в табличной части документ оприходования(поступление), т.е. та партия, которая списывается в УТ, передается и в БУХ
Подписку проверил. Там стоит банальное -
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Т.к. и в БУХ 3.0 и в Бух 2.5 идет загрузка данных в режиме ОбменДаннымиЗагрузка = Истина, то и подписка игнорится. Однако, в БУХ 3.0 документы старого периода все таки не перетираются.
45. perepetulichka 909 11.08.21 10:30 Сейчас в теме
(44) в обработчике "После загрузки" пусто?
В обычных формах еще может быть "Дата запрета загрузки", у вас может быть есть такая в конфигурации и она не установлена?
46. user643882_maxrad 11.08.21 10:52 Сейчас в теме
В обработчике для реализации после загрузки не пусто, но как это влияет на запрет? Даты запрета загрузки в обычных формах вроде как нет.
47. perepetulichka 909 11.08.21 11:17 Сейчас в теме
(46) я не вижу ваш код, и если у вас установлена дата запрета редактирования по пользователям и для пользователя, под которым выполняется обмен, дата запрета установлена и при этом происходит запись в закрытых периодах, то вероятно указано в обработчике что-то типа Объект.ОбменДанными.Загрузка = Истина
48. user643882_maxrad 11.08.21 11:21 Сейчас в теме
Дата запрета стоит общая, и также стоит галка что она действует на всех пользователей с полными правами. ОбменДанными.Загрузка = Истина это ставится в самой обработке универсальной обменом XML. без нее вообще грузится не будет.
49. Hot_Serg 6 06.07.22 08:08 Сейчас в теме
Здравствуйте!
Такое вот задание из УТ 10.3 в Бух 3.0 для КД2.1 по переброске документа Отчёт комиссионера о продажах при помощи Универсального обмена данными 2.1.1.
В исходной базе УТ этот документ может содержать позиции как плюсовые, так и минусовые (наподобе возвратов).
Сейчас есть правило, по которому выгружаются документы (Отчёт комиссионера о продажах) в Бухгалтерию, но только плюсовые позиции.
Надо, чтобы минусовые позиции попадали в документ Корректировка реализации.
Всё это сделал, не могу никак выгрузить Документ реализации (такой реквизит).
Это типа документа-основания, тип документа Отчёт комиссионера о продажах, последний документ с этой номенклатурой с плюсовым значением - я взял из Регистра Продажи.Обороты.

Во внешней обработке (сделал для тестирования) в структуру Исходящие данные всё попадает, но в выгруженном файле - Пусто.
Как и у вас в задаче было.
Можете что подсказать?
50. Hot_Serg 6 06.07.22 09:01 Сейчас в теме
P.S. Вся сортировка Номенклатуры запрограммирована в ПВД в Перед выгрузкой:
- с плюсовым количеством - ВыгрузитьПоПравилу(ИсходящиеДанные,, ИсходящиеДанные,, "ОтчетКомиссионераОПродажахПлюс");

- с Минусовым количеством - ВыгрузитьПоПравилу(ИсходящиеДанные,, ИсходящиеДанные,, "КорректировкаРеализацииМинус"). Каждая позиция - в отдельный документ.

В документ КорректировкаРеализации всё попадает, кроме реквизита Документ реализации - должен быть документ Отчёт комиссионера (последняя продажа с плюсовым значением количества данной Номенклатуры).
51. perepetulichka 909 06.07.22 10:26 Сейчас в теме
(50) скриншоты в студию :)
по ПКС тут статья https://infostart.ru/1c/articles/413178/

Если текстом, то в самом ПКС должно быть указано правило выгрузки данных - ПВД.
И в тексте ПКС перед выгрузкой указать: ВыгрузитьОбъект = Истина;
52. Hot_Serg 6 06.07.22 17:09 Сейчас в теме
Попробовал Вариант Б - не получилось:
Прикрепленные файлы:
53. Hot_Serg 6 07.07.22 08:18 Сейчас в теме
Спасибо, всё получилось.
P.S. просто в ПВД Запрос другой сделал (прямой к исходному документу Отчёт комиссионера).
perepetulichka; +1 Ответить
55. Infector 201 16.05.23 19:09 Сейчас в теме
Галочками отметьте необходимые регистры, по которым хотите перенести движения, они будут добавлены так же, как и табличные части документа. Менять стандартные правила выгрузки не нужно (то есть не нужно писать никаких запросов), движения будут выгружены автоматически.

Вопрос - а какая-то возможность вмешаться в загрузку сих наборов записей есть?
Оставьте свое сообщение