Фокусы с Конвертацией данных 2.0

19.12.11

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Используем мощный инструмент Конвертации данных  себе во благо

Новый год по бухгалтерскому календарю опаздывает с натуральным на 3 месяца. Поэтому приходиться догружать данные. С базами 8 все просто. Есть поиск по внутреннему идентификатору. Но в 77 такого счастья нет. Сменили номер, дату и - привет лишним документам и старым хвостам. Как с этим бороться? Да очень просто. Можно воспользоваться дополнительными свойствами или регистром "Коллизии при обмене". Пример для передачи документа "Выписка банка" из Бух 77 в Бух 2.0 с использованием дополнительных свойств.

Что нам требуется

Передать, найти, переопределить, записать

Свойства избыточны, но зато бухгалтер сразу найдет в старой базе нужную информацию.

Передаем

Обработчик При выгрузке

УстановитьАтрибут(Приемник, "ВидДок", Источник.Вид());
УстановитьАтрибут(Приемник, "НомерДок", СокрЛП(Источник.НомерДок));
УстановитьАтрибут(Приемник, "ДатаДок", Формат(Источник.ДатаДок,"Д ГГГГммДД"));
УстановитьАтрибут(Приемник, "НомерСтроки", Строка(ВходящиеДанные.Получить("НомерСтроки")));
УстановитьАтрибут(Приемник, "ИНН", Константа.ИННОрганизации);

УстановитьАтрибут(Приемник, "ИД", ЗначениеВСтрокуВнутр(Источник));

Ищем

Обработчик Перед загрузкой

//Ищем объект по доп реквизитам

Параметры.Вставить("ДатаДок",Дата(ФайлОбмена.ПолучитьАтрибут("ДатаДок")));
Параметры.Вставить("НомерДок",ФайлОбмена.ПолучитьАтрибут("НомерДок"));
Параметры.Вставить("ВидДок",ФайлОбмена.ПолучитьАтрибут("ВидДок"));
Параметры.Вставить("ИНН",ФайлОбмена.ПолучитьАтрибут("ИНН"));
Параметры.Вставить("НомерСтроки",ФайлОбмена.ПолучитьАтрибут("НомерСтроки"));
Параметры.Вставить("ИД",ФайлОбмена.ПолучитьАтрибут("ИД"));
Параметры.Вставить("ОбъектНайден",Ложь);

Запрос=Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ ПЕРВЫЕ 1
| Реквизиты.Объект,
| &ИНН как инн,
| Реквизиты.Свойство,
| Реквизиты.Значение,
| Виды.Значение КАК ВидДок,
| Даты.Значение КАК ДатаДок,
| Номера.Значение КАК НомерДок,
| НомераСтрок.Значение КАК НомерСтроки,
| ВнутреннийИдентификатор.Значение КАК ИД
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК Реквизиты
|  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК НомераСтрок
|  ПО Реквизиты.Объект = НомераСтрок.Объект
|   И (НомераСтрок.Свойство.Наименование = ""НомерСтроки"")
|  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ИННОрг
|  ПО Реквизиты.Объект = ИннОрг.Объект
|   И (ИннОрг.Значение = &ИНН)
|   И (ИннОрг.Свойство.Наименование = ""ИНН"")
|  ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ВнутреннийИдентификатор
|  ПО Реквизиты.Объект = ВнутреннийИдентификатор.Объект
|   И (ВнутреннийИдентификатор.Значение = &ИД)
|   И (Виды.Свойство.Наименование = ""ИД"")
|ГДЕ
| ВЫБОР
|   КОГДА &НомерСтроки = 0
|    ТОГДА ИСТИНА
|   КОГДА НомераСтрок.Значение = &НомерСтроки
|    ТОГДА ИСТИНА
|   ИНАЧЕ ЛОЖЬ
|  КОНЕЦ";
Запрос.УстановитьПараметр("ВидДок",Параметры.ВидДок);
Запрос.УстановитьПараметр("ДатаДок",Параметры.ДатаДок);
Запрос.УстановитьПараметр("НомерДок",Параметры.НомерДок);
Запрос.УстановитьПараметр("ИНН",Параметры.ИНН);
Запрос.УстановитьПараметр("НомерСтроки",Параметры.НомерСтроки);
Запрос.УстановитьПараметр("ИД",Параметры.ИД);

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

Переопределяем если нашли

Обработчик  При загрузке

Если Параметры.ОбъектНайден=Истина Тогда
    //Стоит заметить, что при переопределении поля поиска не изменяются. Поэтому требуется прописать

    СтОбъект=Объект;

    ОбъектНайден=Истина;
    Объект=Параметры.Объект;

    Объект.Номер=СтОбъект.Номер;

    Объект.Дата=СтОбъект.Дата;
КонецЕсли;

И последнее - записываем

Обработчик После загрузки

Объект.Записать();

Свойства=ПланыВидовХарактеристик.СвойстваОбъектов;
СсылкаИНН =Свойства.НайтиПоНаименованию("ИНН");
СсылкаНомерДок =Свойства.НайтиПоНаименованию("НомерДок");
СсылкаДатаДок =Свойства.НайтиПоНаименованию("ДатаДок");
СсылкаВидДок =Свойства.НайтиПоНаименованию("ВидДок");
СвойстваДоков=ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы;
СсылкаНомерСтроки =Свойства.НайтиПоНаименованию("НомерСтроки"); 
СсылкаИД =Свойства.НайтиПоНаименованию("ИД");

Набор=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(Объект.Ссылка);
Набор.Прочитать();
Набор.Очистить();
//ИНН
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаИНН;
Запись.Значение=Параметры.ИНН;
//НомерДок
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаНомерДок;
Запись.Значение=Параметры.НомерДок;
//ДатаДок
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаДатаДок;
Запись.Значение=Параметры.ДатаДок;
//ВидДок
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаВидДок;
Запись.Значение=Параметры.ВидДок;
//НомерСтроки
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаНомерСтроки;
Запись.Значение=Параметры.НомерСтроки;
//ИД
Запись=Набор.Добавить();
Запись.Объект=Объект.Ссылка;
Запись.Свойство=СсылкаИД;
Запись.Значение=Параметры.ИД;
Набор.Записать();

См. также

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

Программный комплекс способный распознавать сотни листов за раз любых сканированных(фото) документов (УПД, ТОРГ12, СФ, паспорт и пр.) и загружать их в любую 1С (БП3.0, УТ, КА, УНФ, УПП, 1С7.7 ТиС, ЗУП3 и пр.), а также формировать архив сканированных документов.<br> Робот применяет до 5 способов распознавания. Максимальное качество загрузки документов из бесплатных OCR. Работает без Интернета.

10800 руб.

13.10.2022    8125    1    12    

9

Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 1.6 1С:Упрощенное налогообложение 7.7 Россия Бухгалтерский учет Абонемент ($m)

Обмениваемся УПД (УКД) с различными контрагентами через СБИС. А чтобы загрузить УПД (УКД) из 7.7 в Сбис, используем данную обработку, которая создает файл в формате XML, который можно импортировать в систему электронного документооборота. Для конфигурации "Бухгалтерский учет" (тестировалась на релизе 7.70.663) Для конфигурации "Упрощенная система налогообложения" ( тестировалась на релизе 7.70.305) Для конфигурации "Торговля и Склад 7.7" (тестировалась на релизе 7.70.1007)

1 стартмани

31.07.2021    15661    223    AndKovalchuk    50    

18

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

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

8400 руб.

17.03.2021    15757    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    13680    2    0    

5

Файловый обмен (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С по "семерке" - сотрудники помогут вам выполнить переход в рамках техподдержки предлагаемого переноса данных!

45650 руб.

26.05.2020    34587    10    70    

16

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

36

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

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ilsijar 63 15.02.16 21:13 Сейчас в теме
Здравствуйте! У меня проблема по конвертации данных. При конвертации данных в приемнике есть справочник, у которого заведен дополнительный реквизит, в источнике нет информации для передачи. Нужно кроме поиска по наименованию организовать поиск по конкретному дополнительному реквизиту. Добавила ПКС поиск объекта при загрузке по свойству,, источник пусто, переключатель передавать данные в параметр. Как организовать поиск этого дополнительного реквизита? может подскажете?
2. tusv 212 16.02.16 09:51 Сейчас в теме
(1) ilsijar,

Используем обработчик "Поля поиска" и Его параметры СвойствоПоиска, ПараметрыОбъекта и СсылкаНаОбъект

ДополнительныйРеквизит = ПараметрыОбъекта[<Твой параметр>];
Наименование = СвойствоПоиска["Наименование"];
Запрос= Новый Запрос;
Запрос.УстановитьПараметр("ДополнительныйРеквизит",ДополнительныйРеквизит);
Запрос.УстановитьПараметр("Наименование",Наименование);
//Текст запроса
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
   СсылкаНаОбъект=Выборка.Ссылка; //Ура мы все нашли,
КонецЕсли;
Показать
3. ilsijar 63 16.02.16 14:08 Сейчас в теме
Как передать в параметр конкретное значение дополнительного реквизита из приемника?
4. ilsijar 63 16.02.16 16:57 Сейчас в теме
В ПКС в обработчике после загрузки
ВидВзаиморасчетов = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Вид взаиморасчетов");
Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("62.03 Расчеты за пользование услугами эл.связи",,,ВидВзаиморасчетов);

Ошибка Переменная не определена (ВидВР). ВидВР это параметр.

5. tusv 212 16.02.16 17:59 Сейчас в теме
(4) ilsijar,
Совершенно верно. ВидВр это не параметр, но ПараметрыОбъекта["ВидВР"] это вполне материальный объект
6. ilsijar 63 17.02.16 08:14 Сейчас в теме
Ошибка:
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML(1207)}: Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1258)}: Ошибка в обработчике события ПоследовательностьПолейПоиска
ИмяПКО =
ТипОбъекта = Договор с контрагентом
Обработчик = Последовательность полей поиска
ОписаниеОшибки = Получение элемента по индексу для значения не определено
ПозицияМодуля = (1)
КодСообщения = 73
В ПКО ДоговорыКонтрагентов в обработчике:
ДополнительныйРеквизит = ПараметрыОбъекта["ВидВР"] ;
Наименование = СвойстваПоиска["Наименование"];
Организация = СвойстваПоиска["Организация"];
Контрагент = СвойстваПоиска["Контрагент"];
//ДополнительныйРеквизит = СвойстваПоиска["Значение"];
Запрос= Новый Запрос;
Запрос.УстановитьПараметр("Наименование",Наименование);
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.УстановитьПараметр("Контрагент",Контрагент);
Запрос.УстановитьПараметр("ДополнительныйРеквизит",ДополнительныйРеквизит);
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДоговорыКонтрагентов.Ссылка
		|ИЗ
		|	Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
		|ГДЕ
		|	ДоговорыКонтрагентов.Наименование = &Наименование
		|	И ДоговорыКонтрагентов.Организация = &Организация
		|	И ДоговорыКонтрагентов.Контрагент = &Контрагент
		|	И ДоговорыКонтрагентов.ДополнительныеРеквизиты.Значение = &ДополнительныйРеквизит";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
   СсылкаНаОбъект=Выборка.Ссылка; //Ура мы все нашли,
КонецЕсли;
Показать
7. ilsijar 63 17.02.16 16:35 Сейчас в теме
В ПКС в обработчике после загрузки
ВидВзаиморасчетов = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Вид взаиморасчетов"); 
Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("62.03 Расчеты за пользование услугами эл.связи",,,ВидВзаиморасчетов); 

В значение параметра не попадает, и параметр = неопределено. В значение параметра можно только перед загрузкой. Перед загрузкой в значение присвоила строковое значение наименования, и в запросе условие
ДоговорыКонтрагентов.ДополнительныеРеквизиты.Значение.Наименование  = &ДополнительныйРеквизит

Но это не очень правильно. Нельзя ли из приемника в параметр как-то записать?
8. acanta 20.12.18 17:07 Сейчас в теме
Спасибо, хороший вариант.
9. Светлый ум 407 25.02.20 10:29 Сейчас в теме
Оставьте свое сообщение