Алгоритм для выгрузки регистра накопления (остатки) из 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 Конвертация данных Регистры накопления

См. также

SALE! 10%

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0. Переносятся остатки, документы и справочники

Файловый обмен (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 | Предоставляем техподдержку | Обновляем на новые релизы 1С | Перенос из 7.7 является сложным, и на рынке сложно найти специалистов 1С по "семерке" - наши сотрудники помогут вам выполнить переход в рамках техподдержки предлагаемого переноса данных!

50722 45650 руб.

26.05.2020    34237    10    67    

16

Конфигурация "Информационный киоск". Обработки выгрузки товаров для ТиС 9.2, УТ 10.3, УТ 11 (обмен данными с любой конфигурацией 1С 7.7, 8.х)

Оптовая торговля Розничная торговля Перенос данных 1C Сканер штрих-кода Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Управленческий учет Платные (руб)

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

1800 руб.

21.12.2014    59427    8    21    

20

Выгрузка из 1С ТиС 9.2 в 1С БП 3.0 с дополнительными фильтрами по Фирме, Складу, Контрагенту, Проекту, Автору и Юрлицу

Файловый обмен (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    8485    52    Kuzya_brаtsk    8    

11

Переход с 1С:Комплексной 7.7 на 1С:УТ 10.3

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

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

8400 руб.

17.03.2021    15589    5    13    

6

Обмен данными ЗУП 3.1 - Бухгалтерия 7.7

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

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

18000 руб.

29.09.2020    13617    2    0    

5

Выгрузка данных из 1С 7.7. в формате EnterpriseData 1.6 (универсальный формат обмена) в конфигурации 8.3

Перенос данных 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    22885    59    39    

36

Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2

Перенос данных 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    14208    ksnik    0    

15

Загрузка адресов произвольного формата (КЛАДР и нестандартных "грязных" адресов) в ФИАС современных конфигураций из 1С 7.7

Загрузка и выгрузка в 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    19324    17    ksnik    12    

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