gifts2017

Доработка типовой "Загрузки данных из табличного документа" для документов "Перенос данных" и "Корректировка записей регистров"

Опубликовал Татьяна Шавлак (Stety) в раздел Обработки - Обработка документов

Как известно, то, что в документе "Перенос данных" ЗУП-а и ЗБУ выглядит как табличная часть, на самом деле страница с набором движений, а табличные части этого документа содержат только списки регистров. То же касается документа "Корректировка записей регистров" в прочих конфигурациях. Поэтому желающего заполнить этот документ с помощью типовой обработки "Загрузка данных из табличного документа" ждет облом... Но ведь глупо писать одноразовую загружалку из Excel или DBF, чтобы перенести данные о среднем в организации, где работает всего-то пятьдесят человек.

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

Два года с лишним именно так и загружаю время от времени.

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

Версия для платформы 8.2.14

При подготовке загрузочной таблицы для регистра из нескольких таблиц базы-источника в DBF рекомендую разработку: http://infostart.ru/public/77056/

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

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

Наименование Файл Версия Размер Кол. Скачив.
ЗагрузкаДанныхИзТабличногоДокументаДоработкаДляПереносаДанныхИКорректировки.epf
.epf 69,08Kb
14.11.11
532
.epf 69,08Kb 532 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Татьяна Шавлак (Stety) 16.11.11 09:32
Как известно, то, что в документе "Перенос данных" ЗУП-а и ЗБУ выглядит как табличная часть, на самом деле страница с набором движений, а табличные части этого документа содержат только списки регистров. То же касается документа "Корректировка записей регистров" в прочих конфигурациях. Поэтому желающего заполнить этот документ с помощью типовой обработки "Загрузка данных из табличного документа" ждет облом... Но ведь глупо писать одноразовую загружалку из Excel или DBF, чтобы перенести данные о среднем в организации, где работает всего-то пятьдесят человек.

Перейти к публикации

1. Нюра Иванова (amalisheva) 16.11.11 09:32
Сотит задача объединить все ЗУПы в один...... создание правил, конечно вещь хорошая, тока вот регистры перетаскивать не хочет..... а именно документы перенос данных. надеемся с помошью вашей обработки с этой проблемой справиттся. Большое спасибо!
2. Андрей Савенков (Ichigo) 16.11.11 10:44
Спасибо. Сейчас предприятий в холдинге много, и стоит задача все перевести на ЗУП, какие то предприятия (ЗУП) после приходится объединять в один. Обработка помогла.
3. Андрей Григорьев (Borisych) 18.11.11 14:33
Татьяна, обновите файл обработки этим - добавил возможность загрузки для регистратора "ОперацияБух" - для БП 2.0
Прикрепленные файлы:
ЗагрузкаДанныхИзТабличногоДокументаДоработкаДляПереносаДанныхИКорректировки.epf
kosta_ks; корум; Светлый ум; Stety; +4 Ответить 1
4. Konsult Konsult (Konsult) 23.11.11 11:11
Спасибо автору. Обработка очень помогла, грузил в УПП данные для расчета больничного из другой системы.
5. Мастер Йода (master_yoda) 26.11.11 16:13
Большое человеческое спасибо
6. Павел В (PaulV) 30.11.11 13:25
Огромное спасибо автору. Не придется типовую конфигурацию править.
7. Татьяна Шавлак (Stety) 19.12.11 12:15
(3) Borisych, К сожалению, регистры бухгалтерии не так бесхитростны, чтобы от одного добавления строчки все заработало. Публикация к разделу "Зарплата" отнесена именно поэтому. Пока как-то так цель не стояла, чтобы оно заработало с бухгалтерскими регистрами.
8. Андрей Григорьев (Borisych) 19.12.11 12:32
(7) Stety,
Я и не писал что сделал адаптацию обработки для загрузки в регистр бухгалтерии,
в БП 2.0 ОперацияБух теперь включает функционал "Корректировка записей регистров", который удаляется из БП 2.0

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

для загрузки регистров бухгалтерии адаптацию я не делал - мне в БП потребовалось загрузить данные о кадровом движении сотрудников из ЗУП - сведения хранятся НЕ в регистрах бухгалтерии.
Но в итоге все равно сделал правила для переноса кадровых данных из ЗУП в БП в КД.
9. Андрей Григорьев (Borisych) 19.12.11 13:11
(1) amalisheva, Вы при выгрузке метаданных установите флажки:
И все движения появятся как табличные части - и легко выгрузятся
Прикрепленные файлы:
10. Нюра Иванова (amalisheva) 19.12.11 13:25
так уже все загружено, осталось только взаиморасчеты по зарплате......
11. Нюра Иванова (amalisheva) 19.12.11 13:27
все документы перенеслись а вот виддвижение приход..... хоть плач :'(
13. Anna (AB3012) 15.02.12 00:25
Спасибо автору. Обработка очень помогла, грузил в УПП данные для расчета больничного из другой системы.
16. CalvinK 24.03.12 05:57
Спасибо. Функционал загрузки в Перенос данных и Корректировка записей регистров очень полезен. Кстати, в "1С Зарплата и управление персоналом" и "Зарплата и кадры бюджетного учреждения" вместо КорректировкаЗаписейРегистров нужно КорректировкаЗаписейРегистровНакопления, только у меня никак не получается загрузить вид движения Приход или Расход, выдает ошибку и загружает по умолчанию Приход. Не подскажите?
18. Иванов Иван (ivan321) 27.03.12 12:49
Спасибо. Обработка помогла. Особенно при переносе из ЗиК в ЗБУ.
19. mailrum2004 18.04.12 12:49
Спасибо. Использовал КонсольЗапросов, чтобы получить таблицу "кривых остатков" и загрузил данной обработкой в Регистр накопления. Как и у (16) не удалось сформировать Расход, разбираться нет времени, сделал приход с минусом.
20. Айрат Саттаров (kwazi) 25.04.12 10:37
отличная идея. прямо встретил двойника по профилю.
21. Валентина Ерина (erina_valentina) 26.09.12 09:01
Спасибо за обработку очень надеюсь что поможет!
22. Иван Титков (ivannn) 04.06.13 14:13
Столкнулся с такой проблемой, загружаю данные в документ "Перенос данных" в таблицу регистр расчетов "Дополнительные Начисления Работников Организаций". Указываю реквизитам "Период действия начало" , "Период действия конец" в какой колонке искать дату - в документ информацию не загружает, пробовал просто "установить" дату - всё равно не загружает. Есть какие ни будь мысли в чём проблема ???
23. Татьяна Шавлак (Stety) 23.07.13 09:02
(22) ivannn, формат, ессно. Представление даты не соответствует ожиданиям одинэсины. Переформировывайте исходные данные или пишите код загрузки. Второе, по опыту, проще.
24. Андрей (RealSurfer) 07.10.13 18:02
Очень полезная обработка, но есть один неудобный момент: при восстановлении настроек из ранее сохраненного файла настроек слетают номера колонок, и приходится их заново проставлять...
25. ГУ КПАТ ГУ КПАТ (Kpat) 08.04.14 08:51
Спасибо за обработку, очень помогла в трудный момент
26. юрий гулидов (gull22) 01.07.14 08:54
27. Сергей Галюк (dj_serega) 09.02.15 18:37
Спасибо за обработину!!! Думал уже себе писать. А тут оп, и нашлось :)
28. Артем Андреев (redtribe) 30.07.15 04:59
Для БГУ 1.0 и ЗКБУ не работает!!! НЕ отгружает из документа в обработку, не правильно расставляет заголовки в таблице, и в настройках не видит реквизиты полей (поле Подразделение ссылается на несуществующий справочник, а нужного в выборе нет), итого пользы от обработки 0(((
29. Татьяна Шавлак (Stety) 31.07.15 01:07
(28) redtribe, из вашего описания проблем у меня сложилось впечатление, что вы прежде не пользовались типовой обработкой "Загрузки данных из табличного документа" и, возможно, у вас были некие ожидания, что она сама всё грузит из всего и во всё. Если так, то, извините, у вас сверхожидания - в описании указано, что это доработка типовой обработки, которая, кроме её обычного функционала, позволяет загружать из табличного документа данные в движения документа "Перенос данных" (ЗУП, ЗБУ), а также аналогичный ему документ "Корректировка записей регистров" в прочих учётных конфигурациях 1С. "Табличный документ" в терминологии разработчиков 1C - это не то же самое, что табличная часть документа. Табличный документ - это внешний файл mxl, кроме них обработка, как и типовая, работает с xls или dbf. Чтобы обработка брала данные из табличных частей документов, нужно уметь программировать на встроенном языке 1C. Кроме того, по сравнению с типовой обработкой мною не добавлялся функционал "волшебство", который самостоятельно угадывал бы, какую колонку табличного файла куда грузить в объекте-приёмнике. Для этого нужно уметь пользоваться типовой обработкой и программировать, о чём в описании есть специальное предупреждение для новичков. Описание я писала именно для того, чтобы у скачавших её не было "итого пользы от обработки 0((("
30. Павел Кузнецов (user596590_pavel.kuznecov) 05.10.16 13:54
Обработка очень помогла при переходе из КА1.1 в ЗУП Корп 2.5. При этом это была реорганизация путем присоединения к другой организации. Надо было перенести регистры расчета "Основные начисления работников организаций" и "Дополнительные начисления работников организаций" для целей расчета средней при начислении отпуска, к примеру. Но в обработке мной замечены небольшие недостатки, которые мне пришлось исправить.
    1. на закладке "Настройка" реквизит "Период действия конец" имеет тип дата с составом дата и это невозможно поменять. Это приводит к тому, что время из исходных данных теряется и система ставит по умолчанию 00:00:00, а это ведет к потере дня. Потом при расчете среднего в графе "Дней расчетного периода" при отработанном полном месяце получается 28,35, а не 29,3.
    2. Для регистра расчета "Дополнительные начисления сотрудников организаций" не заполнялись поля "Год учета премий по итогам года" и "Дата начала базового периода".
Обе проблемы были решены разом небольшой правкой процедуры "ЗаполнитьНастройкиКолонокРегистраСведений":
//***********************************************************************************************************************
			//Начало моей правки. Код автора закоментирован
			//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
			//ЗагружаемыйРеквизит.ИмяРеквизита           = "ВидРасчета";
			//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "ВидРасчета";
			//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
			//ЗагружаемыйРеквизит.ПолеПоиска           = Истина;
			Если МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций Тогда
				ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.ОсновныеНачисленияОрганизаций", , , ,);
			ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций Тогда 
				ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций", , , ,);
			ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.СреднийЗаработок Тогда 
				ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.СреднийЗаработок", , , ,);
			ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УдержанияОрганизаций Тогда 
				ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УдержанияОрганизаций", , , ,);
				//ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УправленческиеНачисления Тогда 
				//    ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УправленческиеНачисления", , , ,);
				//ИначеЕсли МетаданныеИсточника.ПланВидовРасчета = ПланыВидовРасчета.УправленческиеУдержания Тогда 
				//    ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("ПланыВидовРасчета.УправленческиеУдержания", , , ,);
			КонецЕсли;
			//***********************************************************************************************************************
			//Продолжение моей правки. Код автора закоментирован
            //ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
			//ЗагружаемыйРеквизит.ИмяРеквизита           = "ПериодДействияНачало";
			//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Период действия начало";
			//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
			//ЗагружаемыйРеквизит.ПолеПоиска           = Истина;
			//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Дата", , , ,Новый КвалификаторыДаты(ЧастиДаты.Дата));		
			//
			//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
			//ЗагружаемыйРеквизит.ИмяРеквизита           = "ПериодДействияКонец";
			//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Период действия конец";
			//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
			//ЗагружаемыйРеквизит.ПолеПоиска           = Истина;
			//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Дата", , , ,Новый КвалификаторыДаты(ЧастиДаты.Дата));		
			//
			//ЗагружаемыйРеквизит = ТаблицаЗагружаемыхРеквизитов.Добавить();
			//ЗагружаемыйРеквизит.ИмяРеквизита           = "Сторно";
			//ЗагружаемыйРеквизит.ПредставлениеРеквизита = "Сторно";
			//ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
			//ЗагружаемыйРеквизит.ПолеПоиска           = Истина;
			//ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = Новый ОписаниеТипов("Булево", , , ,);		
			
		КонецЕсли;
	КонецЕсли;
//***********************************************************************************************************************
//Добавленный мной код начало	
	Для каждого Реквизит Из МетаданныеИсточника.СтандартныеРеквизиты Цикл
		Если Реквизит.Имя = "Активность" ИЛИ Реквизит.Имя = "Регистратор" ИЛИ Реквизит.Имя = "НомерСтроки" ИЛИ Реквизит.Имя = "Период"  Тогда
			Продолжить;
		КонецЕсли;
		
		ЗагружаемыйРеквизит                        = ТаблицаЗагружаемыхРеквизитов.Добавить();
		ЗагружаемыйРеквизит.МожетБытьПолемПоиска = Истина;
		ЗагружаемыйРеквизит.ИмяРеквизита           = Реквизит.Имя;
		ЗагружаемыйРеквизит.ПредставлениеРеквизита = Реквизит.Представление();
		ЗагружаемыйРеквизит.ДоступноеОписаниеТипов = МетаданныеИсточника.СтандартныеРеквизиты[ЗагружаемыйРеквизит.ИмяРеквизита].Тип;
	КонецЦикла;
	
//Добавленный мной код окончание
//***********************************************************************************************************************

...Показать Скрыть

Автору огромное спасибо!

Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа