Алгоритм для выгрузки регистра накопления (остатки) из 7.7 в 8.x

21.04.21

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

Алгоритм помогает выгружать регистры накопления (Конвертация данных, редакция 2.1).

1) Добавляем в правила выгрузки объектов регистр конечный (в моем случае это такой же по составу регистр накопления)

 

2) Добавляем ПВД:

 

 

В событии "Перед обработкой" нужно в алгоритм передать необходимую информацию (ИмяРегистра и т.д.).Иного способа как через параметр я не нашел (а может, плохо искал!).

3) Сам алгоритм (ДвижениеРегистраНакопления):

// не знаю насколько оправдано держать описание 
// колонок в отдельном массиве
СписокКолонок =  СоздатьОбъект("СписокЗначений");

КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");

// Создаем текст запроса из имени регистра
// по всем измерениям, ресурсам, реквизитам
ОбъектМетаданных = Метаданные.Регистр(Параметры.ИмяРегистра);

Запрос=СоздатьОбъект("Запрос"); 
ТекстЗапроса= 
"
|ПЕРИОД С '" + Формат(ДатаНачала, "Д ДДММГГ") + "' ПО '" + Формат(ДатаОкончания, "Д ДДММГГ") + "';";
		
Для Индекс = 1 по ОбъектМетаданных.Измерение()  Цикл
	ИмяКолонки = ОбъектМетаданных.Измерение(Индекс).Идентификатор;
	КоллекцияОбъектов.НоваяКолонка(ИмяКолонки);
	СписокКолонок.ДобавитьЗначение(ИмяКолонки);
КонецЦикла;

Для Индекс = 1 по ОбъектМетаданных.Реквизит() Цикл
	ИмяКолонки = ОбъектМетаданных.Реквизит(Индекс).Идентификатор;
	КоллекцияОбъектов.НоваяКолонка(ИмяКолонки);
	СписокКолонок.ДобавитьЗначение(ИмяКолонки);
КонецЦикла;

Для Индекс = 1 по ОбъектМетаданных.Ресурс() Цикл
	ИмяКолонки = ОбъектМетаданных.Ресурс(Индекс).Идентификатор;  
	КоллекцияОбъектов.НоваяКолонка(ИмяКолонки);
	СписокКолонок.ДобавитьЗначение(ИмяКолонки);
	ТекстЗапроса = ТекстЗапроса + "
	|" + ИмяКолонки + " = " +  Параметры.ПолноеИмяРегистра + "." + ИмяКолонки + ";";
КонецЦикла;

ТекстЗапроса = ТекстЗапроса + "
|Док = " +  Параметры.ПолноеИмяРегистра + ".ТекущийДокумент;
|ГРУППИРОВКА Док;"; 
		
Для Индекс = 1 по ОбъектМетаданных.Ресурс() Цикл
	ИмяКолонки = ОбъектМетаданных.Ресурс(Индекс).Идентификатор;
	ТекстЗапроса = ТекстЗапроса + " 
	|ФУНКЦИЯ Приход" + ИмяКолонки + " = Приход(" + ИмяКолонки + ");
	|ФУНКЦИЯ Расход" + ИмяКолонки + " = Расход(" + ИмяКолонки + ");";
КонецЦикла;
		
// обяз. изм. для 8.x
КоллекцияОбъектов.НоваяКолонка("Регистратор");
КоллекцияОбъектов.НоваяКолонка("Период");
КоллекцияОбъектов.НоваяКолонка("ВидДвижения");
		           
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда 
	Сообщить("Не выполнен");  
Иначе
	Пока Запрос.Группировка("Док") = 1 Цикл 
		
                // привычка при использовании обнулять коллекцию
		КоллекцияОбъектов.УдалитьСтроки();
		
		ДвиженияДокумента = "";
		Регистратор = Запрос.Док.ТекущийДокумент(); 
                // объект регистра
		ДвиженияДокумента = СоздатьОбъект(Параметры.ПолноеИмяРегистра);
		
                // перебираем движения по регистратору
		Если ДвиженияДокумента.ВыбратьДвиженияДокумента(Регистратор) = 1 Тогда
			ТекущаяСтрока = 1;
			Пока ДвиженияДокумента.ПолучитьДвижение() = 1 Цикл
				// новая строка
				КоллекцияОбъектов.НоваяСтрока();
				// заполняем строку
				Для Индекс = 1 По СписокКолонок.РазмерСписка() Цикл
					ИмяКолонки = СписокКолонок.ПолучитьЗначение(Индекс);
					Значение = ДвиженияДокумента.ПолучитьАтрибут(ИмяКолонки);
					КоллекцияОбъектов.УстановитьЗначение(КоллекцияОбъектов.НомерСтроки, ИмяКолонки, Значение);
				КонецЦикла;
				
				// дополняем строку
				КоллекцияОбъектов.Регистратор = Регистратор;
				КоллекцияОбъектов.Период = Регистратор.ДатаДок;
				Если ДвиженияДокумента.Приход = 1 Тогда
					КоллекцияОбъектов.ВидДвижения = "Приход";
				КонецЕсли;
				Если ДвиженияДокумента.Расход = 1 Тогда
					КоллекцияОбъектов.ВидДвижения = "Расход";
				КонецЕсли;   
				
				ТекущаяСтрока = ТекущаяСтрока + 1;
			КонецЦикла;		
		КонецЕсли;
		
		ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
		ИсходящиеДанные.Установить(Параметры.ИмяТаблицыПриемника, КоллекцияОбъектов);
		
                //Регистратор наверное не нужен
                //Имя ПКО - у меня по имени Регистра
		ВыгрузитьПоПравилу(Регистратор, , ИсходящиеДанные, , Параметры.ИмяРегистра);    
		
                // вывод отладочной информации
		//Сообщить("Документ: " + Строка(Регистратор) + " " + Параметры.НаименованиеРегистра + ": " + Строка(КоллекцияОбъектов.КоличествоСтрок()));	 
	КонецЦикла; 
КонецЕсли;

Насколько качественно написал функцию, судить вам ! Доброго дня и новых идей!

Алгоритм 1C 7.7 Конвертация данных Регистры накопления

См. также

Перенос данных 1C Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Переносится из типовой конфигурации «Торговля и Склад», реакции 9.2 платформы «1С:Предприятие 7.7» в типовую конфигурацию «Бухгалтерия предприятия», редакции 3.0 платформы «1С: Предприятие 8.3» следующие документы и их операции (с соблюдением всех соответствующих проводок): Поступления товаров и услуг (в т.ч. комиссия), Реализации товаров и услуг (в т.ч. комиссия), ПКО и РКО, выписки банка, счета фактуры (выданные и полученный), Возвраты от покупателей и поставщику, Заявка Покупателя, Инвентаризация и другие (всего 28 видов документов, смотрите описание, приложенное к обработке)

11988 руб.

30.06.2014    65442    105    96    

113

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обработка позволяет выгружать данные из ТиС 7.7 в конфигурации 8.3 для сдачи отчетности, для переноса данных при переходе на 8.3, для организации обмена внутри компании при использовании разных версий 1С в структурных подразделениях или формирования отгрузочных накладных для клиентов.

6000 руб.

18.05.2020    23644    64    39    

38

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

Обработка и правила обмена данными для выгрузки документов и всех связанных с ними справочников из 1С7.7 ТиС 9.2 в 1С8.3 БП 3.0 через файл XML. В типовых конфигурациях уже есть такое решение. Это немного доработанные правила и сама обработка выгрузки, добавлена возможность устанавливать отбор по выгружаемым документам по Фирме, Контрагенту, Складу, Проекту, Автору, ЮрЛицу. А также это внешняя обработка, что даёт возможность адаптировать её под нетиповую ТиС. Обработка и правила тестировались на платформах: 1С: Предприятие 7.7 и 1С: Предприятие 8.3.18.1334. На типовых конфигурациях: «Торговля + склад», редакция 9.2 (7.70 1004) и «Бухгалтерия предприятия» редакция 3.0 (3.0.96.30).

1 стартмани

13.08.2021    9240    55    Kuzya_brаtsk    8    

11

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

Начните вести учет в УТ 10.3! Перенесите все свои данные в УТ 10.3 в любом месяце года и продолжите вести учет! Программа перенесёт любое количество баз с документами и остатками в больших количествах. Обработка выгрузки выполнит проверку исходных данных и сформирует отчет о найденных ошибках в справочниках и документах. Партии переносятся с себестоимостью. Штрихкоды номенклатуры загружаются. Цена переносится. Автор консультирует.

8400 руб.

17.03.2021    16002    5    13    

6

Зарплата Перенос данных 1C Программист Бухгалтер Бухгалтерский учет 7.7 Сложные периодические расчеты 1С:Бухгалтерия 7.7 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Как известно, Бухгалтерия 7.7 не имеет штатной возможности для обмена с ЗУП 3.1. Данная разработка пригодится тем, кто перешел с ЗиК 2.3 на ЗУП 3.1, но вынужден по каким-то своим причинам оставаться на Бухгалтерии 7.7.

18000 руб.

29.09.2020    13846    2    0    

5

SALE! 10%

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

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0 | Продукт является развитием и исправлением ошибок стандартной обработки для выгрузки данных из 1С Бухгалтерии 7.7 в Бухгалтерию 3.0 | Перенос из 7.7 является сложным, и на рынке сложно найти специалистов 1С по "семерке" - сотрудники помогут вам выполнить переход в рамках техподдержки предлагаемого переноса данных!

55778 50200 руб.

26.05.2020    35110    10    73    

16

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

При переходе на новую версию 1С в период параллельной эксплуатации может возникнуть необходимость обратной конвертации данных (по правилам КД версии 2.1) из 1С:Предприятие 8.3 в 1С:Предприятие 7.7 для переноса данных из 1С:Предприятие 8.3 в 7.7. Сделать это поможет следующая инструкция по КД2 о том, как создать новую конвертацию из 8.3 в 7.7, сохранить модуль и правила загрузки данных, сделать загрузку данных. КД2.

17.10.2019    15269    ksnik    0    

16

Загрузка и выгрузка в Excel Перенос данных 1C Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19656    18    ksnik    12    

8
Оставьте свое сообщение