Конвертация реквизитов Проведен и ПометкаУдаления из 8 в 7.7

Публикация № 240825

Разработка - Обмен данными 1С - Перенос данных из 1С7.7 в 1C8.X

Конвертация проведен пометкаудаление перенос реквизит данные

Все кто сталкивался с переносом данных из 8 в 77 через конвертацию данных, знают что перенести значение реквизитов Проведен и ПометкаУдаления без танцев с бубнами, ни как не получится, При загрузке обработка ругается, что реквизит Проведен или ПометкаУдаления у документа нет. И это правда, вместо этих реквизитов у документов есть аналогичные методы, которые только возвращают значение. Точно такие танцы пришлось выполнить и мне, хотя все оказалось проще...

Предистория

Сначало была семерка, производство, файловый вариант, вся переписанная, куча новых объектов. База росла и у нее стали возникать частые транзакции, из-за которых приходилось перегружать сервер несколько раз на дню. Затем решили перейти на восьмерку, серверный вариант, конфигурация УНФ.  Причина выбора: относительно небольшая конфигурация для добавления новых объектов. Но из-за огромного количество документов и справочников и куча отчетов, решили переходить на восьмерку отделами, т.е. организовать выборочный перенос документов и и справочников туда и обратно.  Создали документ в 7, перенесли в 8, на основании создали в 8 другой документ и его перенесли в 7. И в семерке по этим докуметам пока строить отчеты.


Выполнение 

Использовав конфигурацию Конвертация данных,  версия 2.1.7.1, я стал создавать план обмена для переноса. С конвертацией начал ть впервые, возникали разные трудности, решение которых я с легкостью находил на просторах интернета. и Вот я столкнулся с переносом признака Проведен и ПометкаУдаления из 8 в 7. В конвертации при загрузки структуры семерочной базы, создает эти признаки как реквизиты объекта. И соответсвено из 7 в 8 позволяет переносить эти значения, а обратно нет. Но для начала обратно мне не надо было переносить. Но со временем потребность появилась. Начал все с признака Проведение, перерыл весь интернет и ничего, кроме как создать дополнительный реквизит (например "_Проведен") в семерке и передавать туда значение и при загрузки в семерке проверять, если истина (в семерке это 1), проводить документ. Создал реквизит у документа, написал код проверки после загрузки, все  хорошо ет, документы проводятся.

Потом потребовалось перенести ПометкуУдаления. Создал реквизит, написал код проверки. Переношу помеченные документы, а в семерке они не помечаются. Залезаю в отладчик, код отрабатывает верно, после записи документа, пометка стоит, а потом смотрю в списке документов, он не помечен. Непонятно почему!?. Лезу в отладчик, смотрю какой код выполняется после записи объекта, и вижу что 1с механизм установки этого признака сделала, а доть до рабочего варианта так и не смогла.

И вот, я решил поделиться рабочим вариантом кода со всеми.

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


Доработка обработки загрузки

Код который нужно доть находится в Процедуре ЗагрузитьДокументV8(Объект, Вид, ИмяПравила)

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

Код 1 

//--------- Заполняем реквизиты --------------------------------------------
	
	Реквизиты	=	Объект.ВыбратьУзлы("Свойство");
	Для Сч = 0 По Реквизиты.КоличествоУзлов() - 1 Цикл
		
		Реквизит					=	Реквизиты.ПолучитьУзел(Сч);
		ИдРеквизита					=	Реквизит.ПолучитьАтрибут("Имя");
		НеЗамещатьРеквизит			=	Реквизит.ПолучитьАтрибут("НеЗамещать");
		//РеквизитОперации			=	0;

		ТипОбъектаРеквизита		=	"Документ";
		ВидОбъектаРеквизита		=	Вид;
		
		//Если ПустоеЗначение(РеквизитОперации) = 1 Тогда
		//	ТипОбъектаРеквизита		=	"Документ";
		//	ВидОбъектаРеквизита		=	Вид;
		//Иначе
		//	Если ОбъектБД.СуществуетОперация() = 0 Тогда
		//		ЗаписатьОшибку("У документа вида - " + Вид + " - не существует операции!", "!!");
		//		Продолжить;
		//	КонецЕсли;
		//	ТипОбъектаРеквизита		=	"Операция";
		//	ВидОбъектаРеквизита		=	"";
		//КонецЕсли;
		
		Значение					=	УстановитьРеквизитV8(Реквизит, ТипОбъектаРеквизита, ВидОбъектаРеквизита, ИдРеквизита);
		ТипРеквизита				=	"";
		ПрочитатьИнформациюОТипеРеквизита(ТипОбъектаРеквизита, ВидОбъектаРеквизита, ИдРеквизита, ТипРеквизита);
		
		
		Если Значение = "#НеУстановлен" Тогда
			ЗаписатьОшибку("Не установлен реквизит.  Документ." + Вид + ": " + ОбъектБД + "  Реквизит: " + ИдРеквизита);
			Продолжить;
		КонецЕсли;
		

		
		Если (ПустоеЗначение(ТипРеквизита) = 1) Тогда
			
			ПредставлениеРеквизита		=	ТипОбъектаРеквизита + "." + ВидОбъектаРеквизита + "." + ИдРеквизита;
			ЗаписатьОшибку("Неверное имя реквизита:" + ПредставлениеРеквизита);
			Продолжить;
			
		ИначеЕсли	ТипРеквизита = "Неопределенный" Тогда
 
Здесь, после того как обработка получить имя реквизита (ИдРеквизита), она получает значение и тип реквизита (ТипРеквизита). Т.к у докумета нет такого реквизита, она типу реквизита присваивает пустую строку, и соответсвенно выдает ошибку "Неверное имя реквизита:". При проверке на заполнение типа реквизита добавим условие, чтобы при значении ИдРеквизита равное Проведен и ПометкиУдаления обработка не выдавала ошибку. Заменим в Коде 1
Если (ПустоеЗначение(ТипРеквизита) = 1) Тогда
На 
Если (ПустоеЗначение(ТипРеквизита) = 1) И (ИдРеквизита <> "ПометкаУдаления") И (ИдРеквизита <> "Проведен") Тогда
Теперь ошибку выдавать не будет. Идем дальше...
Код 2
Если СозданНовыйОбъект = 0 Тогда
//Если НеУстанавливатьРеквизит(СпособЗагрузкиПоУмолчанию, СпособЗагрузки, ОбъектБД, ИдРеквизита, Значение, СозданНовыйОбъект) = 1 Тогда Продолжить КонецЕсли;
	Если ПустоеЗначение(НеЗамещатьРеквизит) = 0 Тогда Продолжить КонецЕсли;
	Если НЕ ((ИдРеквизита = "ДатаДок") ИЛИ (ИдРеквизита = "ПометкаУдаления")) Тогда
		Если ОбъектБД.ПолучитьАтрибут(ИдРеквизита) = Значение Тогда Продолжить КонецЕсли;	//	значение не изменилось
	КонецЕсли; 
КонецЕсли;
Дальше получается значение реквизита объекта в базе и если оно равно значению из восьмерки, код дальше не выполняется. А так как у документа нет реквизита Проведен И ПометкаУдаления код
ОбъектБД.ПолучитьАтрибут(ИдРеквизита)
будет вылавать ошибку.
Не помню стояла ли в типовой проверка на пометку удаления или нет, но код 2 надо изменить так:
Если СозданНовыйОбъект = 0 Тогда
//Если НеУстанавливатьРеквизит(СпособЗагрузкиПоУмолчанию, СпособЗагрузки, ОбъектБД, ИдРеквизита, Значение, СозданНовыйОбъект) = 1 Тогда Продолжить КонецЕсли;
	Если ПустоеЗначение(НеЗамещатьРеквизит) = 0 Тогда Продолжить КонецЕсли;
	Если НЕ ((ИдРеквизита = "ДатаДок") ИЛИ (ИдРеквизита = "ПометкаУдаления") ИЛИ (ИдРеквизита = "Проведен")) Тогда //Измененая строка
		Если ОбъектБД.ПолучитьАтрибут(ИдРеквизита) = Значение Тогда Продолжить КонецЕсли;	//	значение не изменилось
	КонецЕсли; 
КонецЕсли;
Добавляем проверку на пометку удаления и проведения.
 
Идем дальше...
Код 3
Если ИдРеквизита = "ПометкаУдаления" Тогда
			
	ПометкаУдаления = Значение;
			
ИначеЕсли	ИдРеквизита = "ДатаДок" Тогда

	ВремяДокумента = "";
	ДатаДокумента  = ДатаИзXML(Реквизит.ВыбратьУзел("Значение").Значение, ВремяДокумента);
		
 
И видим проверку если ИдРеквизита равно ПометкаУдаления, то обработка присваивает реквизиту ПометкаУдаление значение полученое из восьмерки. Но так ка у нас выдавало ошибку, дальнейший код не отрабатывался. Теперь он у нас будет отрабатываться, после того как мы изменили условие в коде 1.
Идем дальше. Смотрим где же у нас встречается реквизит ПометкаУдаления.
Код 4
	ЗаписатьОбъект(ОбъектБД);
	
	Если ПустоеЗначение(ПометкаУдаления) = 1 Тогда
		Если ОбъектБД.ПометкаУдаления() = 1 Тогда	ОбъектБД.СнятьПометкуУдаления();	КонецЕсли;
	Иначе
		Если ОбъектБД.ПометкаУдаления() = 0 Тогда	ОбъектБД.Удалить(0);				КонецЕсли;
	КонецЕсли;	                                  
	
КонецПроцедуры		//	ЗагрузитьДокументV8()
А он встречается в конце процедуры после записи объекта. Помните почему у меня в списке документ оказывался без пометки, потому-что отрабатывался данный код, т.к. реквизит ПометкаУдаления был пустым, то выполнялся код снятии пометки удаления
Если ПустоеЗначение(ПометкаУдаления) = 1 Тогда
		Если ОбъектБД.ПометкаУдаления() = 1 Тогда	ОбъектБД.СнятьПометкуУдаления();	КонецЕсли;
Чтобы исправить это меняем код 4 на 
 
Если ПустоеЗначение(ПометкаУдаления) = 0 Тогда 
	Если ПометкаУдаления = 0 Тогда
		Если ОбъектБД.ПометкаУдаления() = 1 Тогда	ОбъектБД.СнятьПометкуУдаления();	КонецЕсли;
	ИначеЕсли ПометкаУдаления = 1 Тогда
		Если ОбъектБД.ПометкаУдаления() = 0 Тогда	ОбъектБД.Удалить(0);		КонецЕсли;  
	КонецЕсли
КонецЕсли;
 
Теперь у нас пометка удаления ет как надо.
Но чтоже делать с проведение?
Добавим в код 3 условие
 
ИначеЕсли ИдРеквизита = "Проведен " Тогда //bdv
			
	Проведен = Значение;
 Реквизиту Проведен присвоим значение из восьмерки. Теперь код 3 выглядит так:
Если ИдРеквизита = "ПометкаУдаления" Тогда
			
	ПометкаУдаления = Значение;
// Добавленый код
ИначеЕсли ИдРеквизита = "Проведен" Тогда 			
	Проведен = Значение;
// Добавленый код
ИначеЕсли	ИдРеквизита = "ДатаДок" Тогда

	ВремяДокумента = "";
	ДатаДокумента  = ДатаИзXML(Реквизит.ВыбратьУзел("Значение").Значение, ВремяДокумента);
 А в код 4 добавим условие проведение документа или же его распроведения
Если ПустоеЗначение(Проведен) = 0 Тогда
		Если Проведен = 1 Тогда 
			ОбъектБД.Провести();
		ИначеЕсли Проведен = 0 Тогда  
			Если ОбъектБД.Проведен() = 1 Тогда	ОбъектБД.СделатьНеПроведенным();	КонецЕсли;  
		КонецЕсли;
КонецЕсли;
	
  Теперь код 4 выглядит так:
        ЗаписатьОбъект(ОбъектБД);
	// Добавленый код
        Если ПустоеЗначение(Проведен) = 0 Тогда
		Если Проведен = 1 Тогда 
			ОбъектБД.Провести();				
		ИначеЕсли Проведен = 0 Тогда  
			Если ОбъектБД.Проведен() = 1 Тогда	ОбъектБД.СделатьНеПроведенным();	КонецЕсли;  
		КонецЕсли;
	КонецЕсли;
	
	Если ПустоеЗначение(ПометкаУдаления) = 0 Тогда 
		Если ПометкаУдаления = 0 Тогда
			Если ОбъектБД.ПометкаУдаления() = 1 Тогда	ОбъектБД.СнятьПометкуУдаления();	КонецЕсли;
		ИначеЕсли ПометкаУдаления = 1 Тогда
			Если ОбъектБД.ПометкаУдаления() = 0 Тогда	ОбъектБД.Удалить(0);				КонецЕсли;  
		КонецЕсли
	КонецЕсли;
 
	
КонецПроцедуры		//	ЗагрузитьДокументV8()
 
Этот код находится в в Обработке ВыгрузкаКонвертации, макет ПроцедурыИФункцииМодуляЗагрузки
Меняем его там, обновляем конфигурацию и теперь не паримся с проведение и пометкой удаления.
Более простого способа переноса этих признаков я не нашел. Кому нравится пользуйтесь на здоровье, кому не нравится предлагайте свои варианты решения. 
 
 Полный код процедуры ЗагрузитьДокументV8 с доработкой:
Процедура ЗагрузитьДокументV8(Объект, Вид, ИмяПравила)
	          
	Перем	ОбъектМД;
 	
	СозданНовыйОбъект	=	0;
	НовыеНеСоздавать	=	0;
	НеЗамещатьНайденные =	0;

	УзелСсылки = Объект.ВыбратьУзел("Ссылка");


	Если ПустоеЗначение(УзелСсылки) = 0 Тогда
		ТекущийОбъект = УстановитьДокументПоСсылкеV8(УзелСсылки, Вид, СозданНовыйОбъект, НовыеНеСоздавать, ОбъектМД, Объект);
		
		
		Если ТекущийОбъект = "Ошибка" Тогда Возврат КонецЕсли;
		                                           
		ОбъектБД	=	СоздатьОбъект("Документ." + Вид);    
		
		Если ПустоеЗначение(ТекущийОбъект) = 0 Тогда

			НеЗамещатьНайденные = Объект.ПолучитьАтрибут("НеЗамещать");
			
			Если СозданНовыйОбъект = 0 Тогда
				Если ПустоеЗначение(НеЗамещатьНайденные) = 0 Тогда
					Если ТекущийОбъект.ПометкаУдаления() = 0 Тогда	//	этот объект не создан по ссылке из реквизитов других объектов
						Возврат;	//	найденные не замещаем
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;
			
			СтатусПроведения	=	гТабКэшПараметровЗагрузки.СтатусПроведения;
			ОтменитьПроведение	=	Число(Объект.ПолучитьАтрибут("ОтменитьПроведение"));
			
			ОбъектБД.НайтиДокумент(ТекущийОбъект);

		КонецЕсли;
			
	Иначе				//	Ссылки нет
		
		//Если ПустоеЗначение(НовыеНеСоздавать) = 0 Тогда Возврат КонецЕсли;	//	новые не создаем
		ОбъектБД = СоздатьОбъект("Документ." + Вид);    
		
		ОбъектМД = Метаданные.Документ(Вид);
		
		ОбъектБД.Новый();
		СозданНовыйОбъект	=	1;
		
		Если ОбъектМД.БухгалтерскийУчет = 1 Тогда
			Если ОбъектМД.СоздаватьОперацию <> "ТолькоПриПроведении" Тогда
				ОбъектБД.СуществуетОперация(1);
			КонецЕсли;
		КонецЕсли;

		ЗначениеНомераДокумента = "";
		УзелНомераДокумента		= Объект.ВыбратьУзел("Свойство[@Имя=""НомерДок""]");
		Если ПустоеЗначение(УзелНомераДокумента) = 0 Тогда
			//ЗначениеНомераДокумента		=	УзелНомераДокумента.ПолучитьАтрибут("Значение");
			ЗначениеНомераДокумента = УстановитьРеквизитV8(УзелНомераДокумента, "Документ", Вид, "НомерДок");
		КонецЕсли;
		Если ПустоеЗначение(ЗначениеНомераДокумента) = 0 Тогда
			ОбъектБД.НомерДок			=	ЗначениеНомераДокумента;
		Иначе
			ЗначениеДатыДокумента		=	"";
			УзелДатыДокумента			=	Объект.ВыбратьУзел("Свойство[@Имя=""ДатаДок""]");
			Если ПустоеЗначение(УзелДатыДокумента) = 0 Тогда
				//ЗначениеДатыДокумента	=	Дата(УзелДатыДокумента.ПолучитьАтрибут("Значение"));
				ЗначениеДатыДокумента	=	УстановитьРеквизитV8(УзелДатыДокумента, "Документ", Вид, "ДатаДок");
			КонецЕсли;
			Если ПустоеЗначение(ЗначениеДатыДокумента) = 1 Тогда ЗначениеДатыДокумента = ФормДатаКон КонецЕсли;
			ОбъектБД.ДатаДок			=	ЗначениеДатыДокумента;
			ОбъектБД.УстановитьНовыйНомер();
		КонецЕсли;
		
	КонецЕсли;
	
	// Локальный обработчик "ПриЗагрузке"
	НомерСтроки = 0;
	Если ТаблицаПравилКонвертации.НайтиЗначение(ИмяПравила, НомерСтроки, "Код") = 1 Тогда
		ТаблицаПравилКонвертации.ПолучитьСтрокуПоНомеру(НомерСтроки);
		Если ТаблицаПравилКонвертации.ЕстьОбработчикПриЗагрузке = 1 Тогда
			Отказ = Шаблон("[ПКО_ПриЗагрузке_" + ИмяПравила + "(ОбъектБД, ИмяПравила, Объект)]");
			Если (ТипЗначенияСтр(Отказ) = "Строка") И (Отказ <> "0") Тогда
				Сообщить("Функция не обнаружена (" + Отказ + ")");
				Протокол.ДобавитьСтроку("     Функция не обнаружена (" + Отказ + ")");
			КонецЕсли;
			Если Число(Отказ) = 1 Тогда
				Возврат;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;                          
	
	ЕстьКонтроль				=	ОбъектМД.КонтрольУникальности;
	Уникальность				=	ОбъектМД.ПериодичностьНомера;
	АвтоНумерация				=	ОбъектМД.АвтоНумерация - 1;
	                    

	СпособЗагрузкиПоУмолчанию	=	"ЗамещатьНеПустыми";
	НеУдалятьСтроки				=	0;
	СтатусУдаления				=	"Авто";
	ПометкаУдаления				=	0;
	
	
                                             
	//--------- Заполняем реквизиты --------------------------------------------
	
	Реквизиты	=	Объект.ВыбратьУзлы("Свойство");
	Для Сч = 0 По Реквизиты.КоличествоУзлов() - 1 Цикл
		
		Реквизит					=	Реквизиты.ПолучитьУзел(Сч);
		ИдРеквизита					=	Реквизит.ПолучитьАтрибут("Имя");
		НеЗамещатьРеквизит			=	Реквизит.ПолучитьАтрибут("НеЗамещать");
		//РеквизитОперации			=	0;

		ТипОбъектаРеквизита		=	"Документ";
		ВидОбъектаРеквизита		=	Вид;
		
		//Если ПустоеЗначение(РеквизитОперации) = 1 Тогда
		//	ТипОбъектаРеквизита		=	"Документ";
		//	ВидОбъектаРеквизита		=	Вид;
		//Иначе
		//	Если ОбъектБД.СуществуетОперация() = 0 Тогда
		//		ЗаписатьОшибку("У документа вида - " + Вид + " - не существует операции!", "!!");
		//		Продолжить;
		//	КонецЕсли;
		//	ТипОбъектаРеквизита		=	"Операция";
		//	ВидОбъектаРеквизита		=	"";
		//КонецЕсли;
		
		Значение					=	УстановитьРеквизитV8(Реквизит, ТипОбъектаРеквизита, ВидОбъектаРеквизита, ИдРеквизита);
		ТипРеквизита				=	"";
		ПрочитатьИнформациюОТипеРеквизита(ТипОбъектаРеквизита, ВидОбъектаРеквизита, ИдРеквизита, ТипРеквизита);
		
		
		Если Значение = "#НеУстановлен" Тогда
			ЗаписатьОшибку("Не установлен реквизит.  Документ." + Вид + ": " + ОбъектБД + "  Реквизит: " + ИдРеквизита);
			Продолжить;
		КонецЕсли;
		

		
		Если (ПустоеЗначение(ТипРеквизита) = 1) И (ИдРеквизита <> "ПометкаУдаления") И (ИдРеквизита <> "Проведен") Тогда
			
			ПредставлениеРеквизита		=	ТипОбъектаРеквизита + "." + ВидОбъектаРеквизита + "." + ИдРеквизита;
			ЗаписатьОшибку("Неверное имя реквизита:" + ПредставлениеРеквизита);
			Продолжить;
			
		ИначеЕсли	ТипРеквизита = "Неопределенный" Тогда
			
			//ТипЗнач			=	Реквизит.ПолучитьАтрибут("ТипЗначения");
			//ВидЗнач			=	Реквизит.ПолучитьАтрибут("ВидЗначения");
			//Точность		=	0;
			//Если ТипЗнач = "Число" Тогда
			//	СтрТочность	=	Значение;
			//	Точность	=	СтрДлина(	ОтделитьРазделителем(СтрТочность, ".")	);
			//КонецЕсли;
			//Если	ПустоеЗначение(РеквизитОперации) = 1	Тогда
			//	ОбъектБД.НазначитьТип(ИдРеквизита, ТипЗнач + ?(ПустоеЗначение(ВидЗнач)=1, "", "." + ВидЗнач), СтрДлина(Значение) + 10, Точность);
			//Иначе
			//	ОбъектБД.Операция.НазначитьТип(ИдРеквизита, ТипЗнач + ?(ПустоеЗначение(ВидЗнач)=1, "", "." + ВидЗнач), СтрДлина(Значение) + 10, Точность);
			//КонецЕсли;
			
			ТипЗнач  = ОпределитьСтроковыйТип(Реквизит.ПолучитьАтрибут("Тип"));
			Точность = 0;
			Если ТипЗнач = "Число" Тогда
				СтрТочность	=	Значение;
				Точность	=	СтрДлина(	ОтделитьРазделителем(СтрТочность, ".")	);
			КонецЕсли;
			ОбъектБД.НазначитьТип(ИдРеквизита, ТипЗнач, СтрДлина(Значение) + 10, Точность);
			
		КонецЕсли;


		
		Если СозданНовыйОбъект = 0 Тогда
			//Если НеУстанавливатьРеквизит(СпособЗагрузкиПоУмолчанию, СпособЗагрузки, ОбъектБД, ИдРеквизита, Значение, СозданНовыйОбъект) = 1 Тогда Продолжить КонецЕсли;
			Если ПустоеЗначение(НеЗамещатьРеквизит) = 0 Тогда Продолжить КонецЕсли;
			Если НЕ ((ИдРеквизита = "ДатаДок") ИЛИ (ИдРеквизита = "ПометкаУдаления") ИЛИ (ИдРеквизита = "Проведен")) Тогда   //bdv
				Если ОбъектБД.ПолучитьАтрибут(ИдРеквизита) = Значение Тогда Продолжить КонецЕсли;	//	значение не изменилось
			КонецЕсли; 
		КонецЕсли;

		
		Если ИдРеквизита = "ПометкаУдаления" Тогда
			
			ПометкаУдаления = Значение;
			
		ИначеЕсли ИдРеквизита = "Проведен" Тогда
			
			Проведен = Значение;
			
		ИначеЕсли		ИдРеквизита = "ДатаДок" Тогда

			ВремяДокумента = "";
			ДатаДокумента  = ДатаИзXML(Реквизит.ВыбратьУзел("Значение").Значение, ВремяДокумента);
			

			Если ОбъектБД.Проведен() = 1 Тогда
				Если (ДатаДокумента <> ОбъектБД.ДатаДок) Или (ОбъектБД.ПолучитьВремя() <> ВремяДокумента) Тогда
					ЗаписатьОшибку("Изменены дата или время проведенного документа - " + ОбъектБД + "!
									|Проведение документа отменено.", "!");
					ОбъектБД.СделатьНеПроведенным();
				Иначе
					Продолжить;
				КонецЕсли; 
			КонецЕсли;
			
			
			//Если СозданНовыйОбъект = 0 Тогда	//	Найден
			//	Если ОбъектБД.ПолучитьВремя() = Значение Тогда Продолжить КонецЕсли;	//	значение не изменилось
			//	Если ОбъектБД.Проведен() = 1 Тогда
			//		ЗаписатьОшибку("Изменено время проведенного документа - " + ОбъектБД + "!
			//						|Проведение документа отменено.", "!");
			//		ОбъектБД.СделатьНеПроведенным();
			//	КонецЕсли;
			//КонецЕсли;

			ОбъектБД.ДатаДок = ДатаДокумента;
			ОбъектБД.АвтоВремяОтключить();
		    ОбъектБД.УстановитьВремя(Число(Сред(ВремяДокумента, 1, 2)), Число(Сред(ВремяДокумента, 4, 2)), Число(Сред(ВремяДокумента, 7, 2)));
		
		//ИначеЕсли	ПустоеЗначение(РеквизитОперации) = 1	Тогда
		Иначе
			
			ОбъектБД.УстановитьАтрибут(ИдРеквизита, Значение);
			
		//Иначе
		//			  
		//	Если СозданНовыйОбъект = 0 Тогда	//	Найден
		//		Если ОбъектБД.Операция.ПолучитьАтрибут(ИдРеквизита) = Значение Тогда Продолжить КонецЕсли;	//	значение не изменилось
		//	КонецЕсли;
		//	
		//	ОбъектБД.Операция.УстановитьАтрибут(ИдРеквизита, Значение);
			
		КонецЕсли;
		
	КонецЦикла;


	
	//--------- ТабличнаяЧасть ----------------------------------------------------------

	
	ТЧ = Объект.ВыбратьУзел("ТабличнаяЧасть");

	Если ПустоеЗначение(ТЧ) = 0 Тогда
	
		НеЗамещатьТЧ    = ТЧ.ПолучитьАтрибут("НеЗамещать");

		Строки			=	ТЧ.ВыбратьУзлы("Запись");
		КоличествоСтрок	=	Строки.КоличествоУзлов();
		
		Если ПустоеЗначение(НеЗамещатьТЧ) = 1 Тогда
			Если ПустоеЗначение(КоличествоСтрок) = 0 Тогда ОбъектБД.УдалитьСтроки() КонецЕсли;
		КонецЕсли;
		
		Для СчСтрок = 0 По КоличествоСтрок - 1 Цикл
			СтрокаДокумента	=	Строки.ПолучитьУзел(СчСтрок);

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

			
			Для Сч = 0 По КолвоРеквизитов - 1 Цикл
				Реквизит					=	Реквизиты.ПолучитьУзел(Сч);
				ИдРеквизита					=	Реквизит.ПолучитьАтрибут("Имя");
				Значение					=	УстановитьРеквизитV8(Реквизит, "Документ", Вид, ИдРеквизита);
				
				Если Значение = "#НеУстановлен" Тогда
					ЗаписатьОшибку("Не установлен реквизит.  Документ." + Вид + ": " + ОбъектБД + "  Реквизит: " + ИдРеквизита);
					Продолжить;
				КонецЕсли;

				
				ТипРеквизита				=	"";
				ПрочитатьИнформациюОТипеРеквизита("Документ", Вид, ИдРеквизита, ТипРеквизита);
				Если 		ПустоеЗначение(ТипРеквизита) = 1 Тогда
					ПредставлениеРеквизита		=	"Документ." + Вид + "." + ИдРеквизита;
					ЗаписатьОшибку("Неверное имя реквизита:" + ПредставлениеРеквизита);
					Продолжить;
				ИначеЕсли	ТипРеквизита = "Неопределенный" Тогда
					//ТипЗнач			=	Реквизит.ПолучитьАтрибут("ТипЗначения");
					//ВидЗнач			=	Реквизит.ПолучитьАтрибут("ВидЗначения");
					//Точность		=	0;
					//Если ТипЗнач = "Число" Тогда
					//	СтрТочность	=	Значение;
					//	Точность	=	СтрДлина(	ОтделитьРазделителем(СтрТочность, ".")	);
					//КонецЕсли;
					//ОбъектБД.НазначитьТип(ИдРеквизита, ТипЗнач + ?(ПустоеЗначение(ВидЗнач)=1, "", "." + ВидЗнач), СтрДлина(Значение) + 10, Точность);
					ТипЗнач  = ОпределитьСтроковыйТип(Реквизит.ПолучитьАтрибут("Тип"));
					Точность = 0;
					Если ТипЗнач = "Число" Тогда
						СтрТочность	=	Значение;
						Точность	=	СтрДлина(	ОтделитьРазделителем(СтрТочность, ".")	);
					КонецЕсли;
					ОбъектБД.НазначитьТип(ИдРеквизита, ТипЗнач, СтрДлина(Значение) + 10, Точность);
				КонецЕсли;
				ОбъектБД.УстановитьАтрибут(ИдРеквизита, Значение);
			КонецЦикла;
			
		КонецЦикла;

	КонецЕсли; // загрузка табл. части
	
	//--------------------------------------------------------------------------
	
	Если ПроверкаУникальностиДокумента(ОбъектБД, ЕстьКонтроль, Уникальность, АвтоНумерация) = 0 Тогда Возврат КонецЕсли;
	                         
	// Глобальный обработчик "ПослеЗагрузкиОбъекта"
	Если мКонвертацияПослеЗагрузкиОбъекта = 1 Тогда
		Отказ = Шаблон("[Конвертация_ПослеЗагрузкиОбъекта(ОбъектБД, ИмяПравила)]");
		Если Число(Отказ) = 1 Тогда
			Возврат;
		КонецЕсли;
	КонецЕсли;
                                
	// Локальный обработчик "ПослеЗагрузки"
	НомерСтроки = 0;
	Если ТаблицаПравилКонвертации.НайтиЗначение(ИмяПравила, НомерСтроки, "Код") = 1 Тогда
		ТаблицаПравилКонвертации.ПолучитьСтрокуПоНомеру(НомерСтроки);
		Если ТаблицаПравилКонвертации.ЕстьОбработчикПослеЗагрузки = 1 Тогда
			Отказ = Шаблон("[ПКО_ПослеЗагрузки_" + ИмяПравила + "(ОбъектБД, ИмяПравила, Объект)]"); 
			Если (ТипЗначенияСтр(Отказ) = "Строка") И (Отказ <> "0") Тогда
				Сообщить("Функция не обнаружена (" + Отказ + ")");
				Протокол.ДобавитьСтроку("     Функция не обнаружена (" + Отказ + ")");
			КонецЕсли;
			Если Число(Отказ) = 1 Тогда
				Возврат;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;                          

	ЗаписатьОбъект(ОбъектБД);
        Если ПустоеЗначение(Проведен) = 0 Тогда
		Если Проведен = 1 Тогда 
			ОбъектБД.Провести();
		ИначеЕсли Проведен = 0 Тогда  
			Если ОбъектБД.Проведен() = 1 Тогда	ОбъектБД.СделатьНеПроведенным();	КонецЕсли;  
		КонецЕсли;
	КонецЕсли;
	
	Если ПустоеЗначение(ПометкаУдаления) = 0 Тогда 
		Если ПометкаУдаления = 0 Тогда
			Если ОбъектБД.ПометкаУдаления() = 1 Тогда	ОбъектБД.СнятьПометкуУдаления();	КонецЕсли;
		ИначеЕсли ПометкаУдаления = 1 Тогда
			Если ОбъектБД.ПометкаУдаления() = 0 Тогда	ОбъектБД.Удалить(0);				КонецЕсли;  
		КонецЕсли
	КонецЕсли;
 	                                  
	
КонецПроцедуры		//	ЗагрузитьДокументV8()
 

Скачать файлы

Наименование Файл Версия Размер
Полный текст обработчиков

.txt 188,54Kb
7
.txt 188,54Kb 7 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо свернутое
1. bashinsky 130 12.12.13 17:55 Сейчас в теме
Эта статья рассчитана на тех, кто уже немного знаком с конфигурацией Конвертация данных. Если у кого-нибудь есть другое решение расскажите.
2. nick_krsk 17 13.12.13 05:03 Сейчас в теме
А что если производить установку пометки удаления в обработчике "После загрузки"?
3. bashinsky 130 13.12.13 09:24 Сейчас в теме
обработка будет ругается, Неверное имя реквизита: ПометкаУдаления. Потому-что сначала идет проверка на ТипРеквизита, а так как это не реквизит, обработка возвращает пустое значение и пропускает код ниже. После проверки выполнятся обработчик "После загрузки".
8. gep 19 13.02.15 20:37 Сейчас в теме
Здравствуйте!
Во-первых, спасибо за ценную информацию - очень помогло.
Во-вторых, хочу добавить небольшую поправку:
Если документ проведен в базе-приемнике, а в базе-источнике снято проведение, то при обмене не произойдет отмена проведения в приемнике (во всяком случае при обмене м/у 7.7->7.7), т.к. в строках:
    Если ПустоеЗначение(Проведен) = 0 Тогда
        Если Проведен = 1 Тогда 
            ОбъектБД.Провести();
        ИначеЕсли Проведен = 0 Тогда  
            Если ОбъектБД.Проведен() = 1 Тогда    ОбъектБД.СделатьНеПроведенным();    КонецЕсли;  
        КонецЕсли;
    КонецЕсли;

Пустое значение и 0 в 7.7 - одно и тоже (а булево из 8-ки конвертируется в 0/1)
Следовательно если документ не проведен в источнике, и проведен в приемнике - ничего не произойдет, т.к. выражение ПустоеЗначение(Проведен) вернет 1, хотя Проведен не пуст, а равен 0. (7.7 такая 7.7)
Доработка проста. В строках:
ИначеЕсли ИдРеквизита = "Проведен" Тогда             
    Проведен = Значение;

меняем на
ИначеЕсли ИдРеквизита = "Проведен" Тогда             
    Проведен = Значение + 1;

И соответственно:
    Если ПустоеЗначение(Проведен) = 0 Тогда
        Если Проведен = 2 Тогда 
            ОбъектБД.Провести();
        ИначеЕсли Проведен = 1 Тогда  
            Если ОбъектБД.Проведен() = 1 Тогда    ОбъектБД.СделатьНеПроведенным();    КонецЕсли;  
        КонецЕсли;
    КонецЕсли;
11. compaud 27.02.19 16:02 Сейчас в теме
На строчке
ОбъектБД.УстановитьВремя(Число(Сред(ВремяДокумента, 1, 2)), Число(Сред(ВремяДокумента, 4, 2)), Число(Сред(ВремяДокумента, 7, 2)));

Возникает ошибка

{путьдообработки(2879)}: Не выбран документ!
Оставьте свое сообщение

См. также

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

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 1cv7.md Россия Абонемент ($m)

Воспользоваться современным средством переноса данных "Конвертация данных 3.0.5.3" можно только выгрузив из системы - источника данных XML в формате обмена данными EnterpriseData. В этой публикации можно скачать приемы выгрузки из 1С 7.7 универсального формата обмена для Конвертации данных 3. Выполняем перенос данных из «1С:Предприятие 7.7» в «1С:Предприятие 8.3». Используем Конвертацию данных КД 3.0 из 1c 7.7 --> 1С 8.3. На первой стадии еще не опубликовано иного способа подложить файл для Конвертации данных 3 кроме как сформировать его вручную, постараемся решить данную проблему.

1 стартмани

26.02.2018    43165    59    ksnik    3    

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

Обработка справочников Перенос данных из 1С7.7 в 1C8.X Загрузка и выгрузка в Excel v7.7 v8 1cv8.cf 1cv7.md ERP2 Абонемент ($m)

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

1 стартмани

16.08.2019    9772    8    ksnik    12    

Правила переноса ТиС 7.7 - УНФ 1.6

Перенос данных из 1С7.7 в 1C8.X v8 УНФ Россия Абонемент ($m)

Как ни странно, типовых правил переноса из ТиС 7.7 в 1С: УНФ нет. Выкладываю самописные правила правила переноса.

1 стартмани

19.06.2019    8014    61    serega9507585993    9    

Перенос данных из 1С: 7.7 Комплексная конфигурация в 1С: 8.3 Бухгалтерия

Перенос данных из 1С7.7 в 1C8.X v8 БП3.0 Абонемент ($m)

Обработка будет актуальна компаниям которые работают в 1С 7.7 Комплексная конфигурация а для отчетности использует последнии версии 1С Бухгалтерия. Обработка необходима для периодического переноса документов из 1С 7.7 Комплексная конфигурация в 1С Бухгалтерия. Если работа ведется в 1С 7.7 Торговля и склад (1С ТиС) необходимо внести не большие изменения в обработку. Вы можете сделать это самостоятельно или обратится к автору обработки за помощью в адаптации для вашей конфигурации 1С

10 стартмани

14.04.2019    7088    20    Valmont1    7    

Перенос справочников и документов из 1С 7.7 "Торговля и склад 9.2" в 1С 8.2 "Бухгалтерия предприятия 2.0". Промо

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v8 БП2.0 1С7:ТиС Россия Абонемент ($m)

Немного доработанные типовые правила обмена для конфигураций из ТиС 9.2. в БП 2.0 - «ПОД_Перенос_Справочников_ТиС_БП20.xml» и «ОбработкаВыгрузкиСправочников.ert». Добавлены правила выгрузки справочников: Организации, контрагенты и номенклатура. Доработал типовые ПОД для переноса только контрагентов и номенклатуры без документов в новую базу бухгалтерии 2.0, протестировал на типовых конфигурациях ТиС 9.2 рел.984 и БП 2.0.64.23.

1 стартмани

05.06.2015    51510    115    Kuzya_brаtsk    3    

Перенос остатков и документов (обмен) из Комплексной конфигурации 7.7, редакция 4.5, в конфигурацию Управление предприятием ERP 2.0 (Комплексная автоматизация 2.0)

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 1С7:Комплекс ERP2 КА2 Абонемент ($m)

Разработка позволяет перенести остатки по всем счетам бух. учета из "1С:Комплексная конфигурация, редакция 4.5 (7.7)" в программу "1С:Управление предприятием ERP 2.0", на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Конфигурация "1С:Управление предприятием ERP 2.0" является полностью типовой.

5 стартмани

11.01.2019    9311    29    sulig    13    

Замена конфигурации в правилах обмена

Обработка справочников Тестирование и исправление Перенос данных из 1С7.7 в 1C8.X Обмен через XML Перенос данных из 1C8 в 1C8 1С7.7<->1C7.7 v8 КД Абонемент ($m)

С помощью этой внешней обработки для конфигурации 1С:Конвертация данных, ред. 2.1 вы легко замените конфигурацию приемника или источника в правилах конвертации объектов.

2 стартмани

08.01.2019    10056    48    tomvlad    8    

Выгрузка проводок из ЗУП 3.1 в КА 1.1, Бух77

Обмен через XML Зарплата Перенос данных из 1С7.7 в 1C8.X Перенос данных из 1C8 в 1C8 Зарплата v8 v77::БУ КА1 1С7:Бух ЗУП3.x БУ Абонемент ($m)

Обработка выгрузки документа "Отражение зарплаты в бухучете". Механизм загрузки в КА 1.1. Механизм загрузки в Бух 77.

1 стартмани

13.09.2018    9200    92    HAMMER_59    7    

Загрузка из 1С 7.7 ТиС в 1С 8.3 Бухгалтерия 3.0 онлайн Промо

Перенос данных из 1С7.7 в 1C8.X v8 БП2.0 1С7:ТиС Россия Абонемент ($m)

Обработка для загрузки документов из 1С 7.7 ТиС в документ ОперацияБух 1С 8.3 Бухгалтерия 3.0

1 стартмани

23.01.2014    35027    169    Denis_Viktorovich    26    

Обмен проводками 1с 7.7 -> 1с 8.3

Перенос данных из 1С7.7 в 1C8.X v8 v77::БУ v8::БУ 1С7:Бух БП3.0 Россия БУ Абонемент ($m)

Удобный способ перенести ВСЕ проводки с 1С 7.7 в 1С 8.3 без потери какой либо копейки, не прибегая к штатному обмену.

1 стартмани

25.08.2018    10120    21    maksa2005    9    

Выгрузка из ЗУП 3.1 в Бух 7.7 (4.5)

Зарплата Обмен через XML Перенос данных из 1С7.7 в 1C8.X Зарплата v7.7 v8 1С7:Бух ЗУП3.x Россия БУ Абонемент ($m)

Комплект обработок для выгрузки данных по зарплате за месяц из конфигурации ЗУП 3.1 (8.3) в конфигурацию Бухгалтерия 4.5 (7.7) через внешний файл xml.

3 стартмани

27.07.2018    16440    101    ааю    22    

1С:Конвертация данных 2.0. Анализ состава выгруженных данных из базы источника до загрузки в базу-приемник

Перенос данных из 1C8 в 1C8 Перенос данных из 1С7.7 в 1C8.X v8 КД БП3.0 ЗУП3.x Россия Абонемент ($m)

Обработка анализирует файл выгрузки данных конвертации и формирует дерево выгруженных объектов по категориям с возможностью просмотра выгруженных реквизитов (свойств). Идеально подходит для анализа выгруженных данных при переходе на ЗУП 3.1 или Бухгалтерия 3.0 с ранних версий.

1 стартмани

16.11.2017    18075    91    leosoft    4    

Внешняя обработка TRANSFER7782U Версия 2.07 Перенос данных из 1C Предприятие 7.7 в 1С Предприятие 8.2 (8.3) (Обычное и управляемое приложение) Промо

Перенос данных из 1С7.7 в 1C8.X v8 1cv8.cf Абонемент ($m)

Внешняя обработка предназначена для COM-переноса данных из информационной базы 1С Предприятие 7.7 в 1С Предприятие 8.2 (8.3) (Обычное и управляемое приложение).

1 стартмани

25.04.2014    69903    726    rauf    74    

Конвертация данных 7.7 - 8.3

Перенос данных из 1С7.7 в 1C8.X v8 Абонемент ($m)

Правила конвертации данных при переходе с конфигураций 7.7 на 8.3

1 стартмани

29.11.2016    34614    75    G.P.    10    

Правила выгрузки из Торговля и Склад 9.2 в Управление Торговлей 11.2

Перенос данных из 1С7.7 в 1C8.X Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 1С7:ТиС Россия УУ Абонемент ($m)

Правила выгрузки из Торговля и Склад 9.2 в Управление Торговлей 11.2. Выгрузка справочников, остатков, документов за период.

5 стартмани

11.02.2016    17134    37    vowg    6    

Набор правил конвертации

Перенос данных из 1С7.7 в 1C8.X Перенос данных из 1C8 в 1C8 v7.7 v8 БП2.0 УТ10 УПП1 1С7:ТиС Абонемент ($m)

Набор правил обмена между различными конфигурациями ТиС 9.2-УТ11.1 ТиС 9.2-УПП1.3 УТ11.1-УТ11.2 УТ10.3-УТ1.11 УПП1.3-УТ11.2 УТ10.3-БП2.0 УТ10.3-УТ11.2 УТ11.1-БП 3.0 проверены на реальных переходах, работают.

1 стартмани

14.01.2016    30623    216    filipp    24    

Правила выгрузки из ТиС в БП 3.0 Промо

Перенос данных из 1С7.7 в 1C8.X v7.7 1С7:ТиС Абонемент ($m)

Выгрузка документов из "Торговля + Склад", ред. 9.2 в Бухгалтерию 3.0

1 стартмани

13.03.2014    42988    262    RocKeR_13    41    

Просмотр данных 1С 7.7 из 1С 8.3

Перенос данных из 1С7.7 в 1C8.X v8 1С7:ТиС Россия Абонемент ($m)

Иногда есть необходимость открыть старую базу 1С 7.7, но у нас есть только установленная платформа 1С 8.3. Поэтому мной была написана конфигурация, которая позволяет просматривать данные 1С версии 7.7

1 стартмани

11.11.2015    15624    15    AlkB    10    

Синхронизация данных программ "1С:Бухгалтерия 7.7" и "1С:Бухгалтерия 8"

Перенос данных из 1С7.7 в 1C8.X Обработка документов Обмен через XML v8 БП2.0 1С7:Бух Россия БУ НУ Абонемент ($m)

Не получается перенести данные из программы 1С Бухгалтерия 7.7 в программу 1С Бухгалтерия 8? Возможно, проблема в режиме синхронизации? При переносе данных возможны различные варианты работы. Мы сосредоточим внимание в данной статье на особенностях режима синхронизации.

5 стартмани

06.11.2015    39011    53    bb1962    1    

Перенос данных из 1С 7.7 "Бухгалтерия" в 1С8.2/8.3 Управление торговлей для Беларуси ред.3.0/3.1

Перенос данных из 1С7.7 в 1C8.X v8 УТ10 Беларусь Абонемент ($m)

Внешняя обработка предназначена для переноса Справочников, Документов, Остатков по счетам путем непосредственного подключения к конфигурации-донору 1С 7.7 .

1 стартмани

30.10.2015    16623    29    hgfdsa2013    1    

Перенос справочников из 7.7 в 8.1, 8.2 Промо

Перенос данных из 1С7.7 в 1C8.X v8 Абонемент ($m)

Обработка позволяет переносить простые и иерархические справочники, по технологии OLE.

1 стартмани

12.09.2013    37484    352    Alex103a    47    

Конвертация Данных 2: «Не создавать новый объект в приемнике, если он НЕ найден» для 7.7

Перенос данных из 1С7.7 в 1C8.X v8 КД Абонемент ($m)

Не секрет, что конвертация данных 2.0 не универсальна при переносах из 1С 8.x в 1С 7.7. Постараемся устранить один недочет для галочки в ПКО: "Не создавать новый объект в приемнике, если он НЕ найден". Читать далее.

1 стартмани

13.05.2015    22123    23    Xershi    29    

Обработка "Выгрузка конвертации" для КД 2.1.8.2 + GCOMP + исправлена ошибка отсутствия отбора по периоду в ПВД документов со способом выборки "Стандартная обработка"

Перенос данных из 1С7.7 в 1C8.X 1С7.7<->1C7.7 Адаптация типовых решений v8 КД Абонемент ($m)

В типовой конфигурации "Конвертация данных" 2.1.8.2 при работе с ИБ на платформе 7.7 существует множество недочетов. Один из самых важных - в типовой обработке выгрузки v77Exp.ert не работает отбор по периоду (дата С .. ПО ...), если в ПВД выбран способ отбора "Стандартная обработка". В данной обработке эта ошибка исправлена. Так же, добавлена автоматическая сборка модулей выгрузки\загрузки (для платформы 7.7) с помощью GComp.

1 стартмани

19.12.2014    22473    11    demon_infernal    6    

Универсальная загрузка документов из v7 в v8

Перенос данных из 1С7.7 в 1C8.X Обмен данными 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

Еще одна вариация на тему загрузки из v7 в v8 по схеме с возможностью поиска элементов справочников по наименованию, по списку согласования или фиксированного значения с созданием нового элемента в базе получателе.

1 стартмани

10.12.2014    16713    51    LavinVadik    7    

Конвертация данных 2: Проведение документов 7.7

Перенос данных из 1С7.7 в 1C8.X v8 КД Абонемент ($m)

Механизм проведения документов из 1С 8.2 в 1С 7.7 с использованием конфигурации Конвертация Данных 2.

1 стартмани

05.12.2014    26724    9    Xershi    12    

Запуск COM-Объекта 1С 7.7 или 1С 8.х в виде "УДАЛЕННОГО COM+" (как Решение проблемы запуска COM 32-бит внутри 64-бит приложения, так и проблем разных версий движка 8.х)

Перенос данных из 1С7.7 в 1C8.X Перенос данных из 1C8 в 1C8 v7.7 v8 Абонемент ($m)

Проблемы (решенные с помощью COM+): 1) Проблема с "ComConnector" из-за разных версий движка 1С; 2) "Сервер 1с 64-бит отказался работать с COM 1c 7.7(32 бит)"; 3) Как создать удаленный COM+ внутри 1с 7.7 для решения проблемы, как в пункте 1); И вот, наконец-то, при помощи удаленного запуска COM+ забываем обо всех этих проблемах навсегда)))

2 стартмани

29.07.2014    27370    54    sanfoto    3    

Способ переноса данных из 7-ки в 8-ку в виде дерева значений Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X v8 Абонемент ($m)

Один из универсальных способов оперативного (т.е. когда надо здесь и сейчас) переноса данных из 7-ки в 8-ку.

1 стартмани

26.02.2013    20663    136    adhocprog    18    

Правила обмена ТиС 9.2 (7.70.977) -> БП 3.0 (3.0.30.16)

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v8 v77::ОУ 1С7:ТиС БП3.0 БУ Абонемент ($m)

Доработанные типовые правила обмена. Исправлено много ошибок.

1 стартмани

06.05.2014    17317    114    ablent    6    

Правила обмена ТиС 9.2 --> БП 3.0

Перенос данных из 1С7.7 в 1C8.X v8 v77::ОУ 1С7:ТиС БП3.0 Абонемент ($m)

Измененный файл типовых правил обмена. Исправил ошибки. Протестировал на ТиС 7.70.977 и Бухгалтерия ред. 3.0 (3.0.30.10 и 3.0.31.9). Добавил правила обмена с ред. 3.0 (3.0.39.56). Добавил правила обмена с ред. 3.0 (3.0.43.116) (также актуальны для 3.0.51.27). Добавил правила обмена с ред. 3.0 (3.0.70.25).

1 стартмани

08.04.2014    23236    106    RA85    8    

Загрузка данных из ТиС 7.7 в Бухгалтерию 3.0 через COM-соединение (документы, справочники)

Перенос данных из 1С7.7 в 1C8.X v8 БП2.0 Россия Абонемент ($m)

Внешняя обработка загрузки документов и справочников в разрезе организаций в конфигурацию "1С:Бухгалтерия предприятия 8, ред. 3.0" из "1С:Торговля и склад 7.7" через COM-соединение для управляемого приложения

3 стартмани

19.02.2014    20520    186    acapulco    9    

Правила конвертации ЮТД<>Бухгалтерия, "Документ" в "ОперацияБух" Промо

Перенос данных из 1С7.7 в 1C8.X v8 БП2.0 УТ10 Розничная и сетевая торговля (FMCG) Ювелирная промышленность и торговля Россия Абонемент ($m)

Универсальный обмен данными, правила конвертации между базами Ювелирный торговый дом от компании ЮвелирСофт и Бухгалтерия 1.6, 2.0, 3.0

1 стартмани

17.03.2013    23569    60    Denis_Viktorovich    6    

Правила обмена ТиС 9.2 --> БП 3.0

Перенос данных из 1С7.7 в 1C8.X v8 1С7:ТиС Россия Абонемент ($m)

Измененный файл правил обмена (исправил ошибки).

1 стартмани

06.02.2014    20879    159    chesnokov-a-v    13    

Перенос данных из Комплексная 7.7 в ЗУП 2013 год

Зарплата Учет рабочего времени Перенос данных из 1С7.7 в 1C8.X Зарплата Учет рабочего времени v8 ЗУП2.5 1С7:Комплекс Россия Абонемент ($m)

Выгрузка данных, взятая из публикации: http://infostart.ru/public/85470/. Доработана для выгрузки из комплексной 7.7 версии 7.70.527, выгружать можно в том числе данные 2013 года. Также доработана выгрузка остатков отпусков в соответствии с формой Т2, поправлены небольшие выявленные неточности оригинального переноса(например ФИО сотрудника брались из наименования, а не из поля ПолнНаименование), ну и т.п.

1 стартмани

08.12.2013    15507    118    anime21    3    

Перегрузка документов из ЗиК 7.7 в ЗУП 8.2 через текстовый файл (без конвертации данных)

Зарплата Перенос данных из 1С7.7 в 1C8.X Зарплата v8 ЗУП2.5 Абонемент ($m)

Перегрузка наиболее распространённых документов из ЗиК 7.7 в ЗУП 8.2. Работает через текстовый файл и не использует конвертацию данных. Предназначена для оперативного переброса документов из 7-ки в 8-ку - в случае, когда учёт ведётся параллельно в 2 программах (в 7-ке и в 8-ке) - в первый месяц после перехода. В отличие от конвертации данных, не переносит отсутствующие реквизиты документов (но это малокритично). Рассчитана на программиста 1С, т.к. может требовать программного корректирования обработчиков загрузки (но это на порядок проще, чем работать с конвертацией данных).

1 стартмани

12.11.2013    18415    87    prodines    19    

Перенос объектов между базами с идентичной структурой переносимых объектов. Промо

Универсальные обработки Перенос данных из 1С7.7 в 1C8.X Обмен через XML v8 1cv8.cf Абонемент ($m)

Перенос объектов между базами с идентичной структурой переносимых объектов.

1 стартмани

14.02.2013    21912    284    sergbsv    18    

"Универсальный обмен данными в формате XML" + правила обмена: УПП 1.3 -> 77 АТС; УПП 1.3 -> ЗУП 2.5.

Перенос данных из 1С7.7 в 1C8.X Обмен через XML Зарплата Зарплата v8 ЗУП2.5 УПП1 1С7:ЗиК 1С7:Комплекс Россия БУ УУ Абонемент ($m)

Эта задача наоборот или назад в прошлое. :). Она часть проекта главного переноса из 7.7 АТС в УПП. Надо организовать ежедневный перенос кадровых данных из УПП в 7.7. Этот перенос должен работать, пока не будет завершен весь проект. Для выгрузки из УПП используется обработка "Универсальный обмен данными в формате XML" с доработкой. Для загрузки в 7.7 используется обработка "V77Imp.ert" с доработкой.

1 стартмани

09.10.2013    32715    28    IgorXml    5    

Правила обмена - перенос справочников и остатков ПУБ 7.7 - Бухгалтерия для Украины 8.2

Перенос данных из 1С7.7 в 1C8.X v8 БП2.0 1С7:ПУБ Украина БУ Абонемент ($m)

Перенос справочников и остатков ПУБ 7.7 - Бухгалтерия для Украины 8.2

1 стартмани

13.09.2013    15290    56    realmrak    3    

Правила обмена данными между конфигурацией БУ для Украины и ЗУП для Украины на основе типовых с добавлением выгрузки документов

Зарплата Перенос данных из 1С7.7 в 1C8.X Зарплата v8 КД Украина БУ Абонемент ($m)

Правила обмена данными между конфигурацией БУ для Украины и ЗУП для Украины на основе типовых с добавлением выгрузки документов.

1 стартмани

15.07.2013    11243    16    gorakh    3    

Перенос данных из 7.7 в 8.2 Промо

Перенос данных из 1С7.7 в 1C8.X Оборотно-сальдовая ведомость, Анализ счета Оборотно-сальдовая ведомость, Анализ счета v8 БП2.0 Украина БУ Абонемент ($m)

Обработка предназначена для переноса проводок из 7.7 в 8.2. Она может помочь решить проблему, если есть необходимость перенести все проводки от начало и до конца 8.2 которые были сделаны в базе 7.7 при этом не нужно переносить все документы из 7.7. А также можно использовать для перехода с версии 7.7 на 8.2. Делалась под Российские конфигурации! Конфигурации 7.7 Бухгалтерский учет, редакция 4.5 Упрощенная система налогообложения Бухгалтерский учет (бюджет) ред. 6.1 Конфигурации 8.2 Бухгалтерия предприятия, редакция 1.6 Бухгалтерия предприятия, редакция 2.0 Бухгалтерия автономного учреждения КОРП, редакция 2.0 Бухгалтерия предприятия КОРП, редакция 3.0

1 стартмани

03.10.2012    37207    391    IT-стратегия    39    

Перенос регистра бухгалтерии между идентичными базами используя xml-сериализацию

Обработка документов Перенос данных из 1С7.7 в 1C8.X v8 БП2.0 Россия БУ Абонемент ($m)

Приводится пример использования xml-сериализации для переноса данных (в частности, записей регистра бухгалтерии) между идентичными базами, использование которого позволяет добиться очень компактного и "понятного" кода.

1 стартмани

11.07.2013    22515    73    Mortiferus    11    

Проверка документов после обмена Управление торговлей - Бухгалтерия

Перенос данных из 1С7.7 в 1C8.X v8 УТ10 Россия БУ УУ Абонемент ($m)

Проверка все ли документы выгрузились после обмена УТ - БП. Запускается на стороне УТ. Проверка проводится по совпадению Номеров документов. Помимо этого анализируется различие дат и признака проведения.

1 стартмани

10.07.2013    9224    35    pomestnik    5    

Выгрузка, загрузка товаров из ТиС 9.2 (7.7) в УТ 11.1 (8.2) через XML

Перенос данных из 1С7.7 в 1C8.X v8 УТ10 1С7:ТиС Россия Абонемент ($m)

Выгрузка каркасная – код, наименование, иерархия. Реализован «прогресс бар» для тонкого клиента.

1 стартмани

09.07.2013    19371    92    Yury1001    9    

Выгрузка фактических отпусков организаций из ЗиК 7.7 в ЗУП 8.2 в соответствии с формой Т2 (правильные остатки отпусков) Промо

Перенос данных из 1С7.7 в 1C8.X Зарплата Зарплата v8 ЗУП2.5 1С7:ЗиК Россия Абонемент ($m)

Доработанные обработка и правила выгрузки данных для расчета остатков отпусков (регистр "Фактические отпуска организаций") из "Зарплаты и Кадры 7.7" в "Зарплату и Управление Персоналом 8.2". Перегрузку можно делать в уже существующую базу данных. Учтены пересечения с больничными, убраны ошибки переноса, связанные с кривым типовым алгоритмом переноса по журналу расчетов зарплаты (когда происходило задвоение или увеличение дней отпуска за счет записей сторно, корректировок и отпусков переходящих на другие месяца, и возникало несколько записей в журнале расчета по одному начислению отпуска). Выгрузка выравнивает дни по каждому конечному документу "Начисления отпуска" - эти дни рассчитываются в соответствии с алгоритмом формы Т2 конфигурации "Зарплата и Кадры 7.7".

1 стартмани

14.04.2012    27318    110    anime21    16    

Доработанный CommerceML с выгрузкой услуг по счету и заказов покупателей.

Управление взаимоотношениями с клиентами (СRM) Перенос данных из 1С7.7 в 1C8.X Управление взаимоотношениями с клиентами (СRM) v8 КА1 УПП1 Россия Абонемент ($m)

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

1 стартмани

05.07.2013    10092    87    maratimus    7    

Видеоурок "Правила конвертации данных 1С Предприятия" Промо

Перенос данных из 1C8 в 1C8 Перенос данных из 1С7.7 в 1C8.X 1С7.7<->1C7.7 v7.7 v8 1cv8.cf 1cv7.md КД Абонемент ($m)

Для не искушенных "прочими обменами" (начинающих). Правила конвертации данных 1С Предприятия, где их взять и как их использовать. Записал я, распространяется свободно, не для продажи.

1 стартмани

06.03.2011    42884    544    samamoiloff    76