Групповая обработка ПКО и ПКС в КД

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

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

Встраивание типовой обработки "Универсальный подбор и обработка объектов" в КД для групповой обработки ПКО и ПКС

Потребовалось поменять значения и обработчики ПКС сразу для кучи определенных свойств документов. Стандартная обработка в КД "Групповая обработка справочников и документов" для этого не совсем подошла, т.к. там невозможно использовать код для обработки, да и не очень удобно отбор создавать. Поэтому вставил в КД типовую обработку "Универсальный подбор и обработка объектов" и привязал её открытие к выбранным ПКО/ПКС в форме редактирования правил обмена.

На форму (в командные панели списков ПКО и ПКС) добавляются кнопки "Обработка объектов" и "Обработка свойств". Они позволяют открыть групповую обработку сразу с установленным отбором в зависимости от текущего выбранного ПКО/ПКС. Поддерживается множественный выбор.

Инструкция: 

1) Включаем возможность изменения в КД, добавляем в обработки "Универсальный подбор и обработка объектов" с ИТС под именем "УниверсальныеПодборИОбработкаОбъектов"

2) Открываем общую форму "ПравилаОбмена" и вставляем в конец модуля формы (перед комментариями "ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ") кусок кода:

//{ Конвертация данных }

Процедура ПриОткрытии_КД()

   
// Типовой обработчик
   
ПриОткрытии();

    Если
Метаданные.Обработки.Найти("УниверсальныеПодборИОбработкаОбъектов") = Неопределено Тогда
       
ТекстСообщения =
           
"Необходимо добавить в конфигурацию обработку ""УниверсальныеПодборИОбработкаОбъектов""
            |Путь на ИТС: \1CIts\EXE\EXTREPS\UNIREPS82\UniversalSelection\УниверсальныеПодборИОбработкаОбъектов.epf"
;
       
Сообщить(ТекстСообщения);
    Иначе
       
Кнопка = Элементыформы.КоманднаяПанельПКО.Кнопки.Добавить("РазделительОбработкаОбъектов_КД", ТипКнопкиКоманднойПанели.Разделитель);
       
Кнопка = Элементыформы.КоманднаяПанельПКО.Кнопки.Добавить("ОбработкаОбъектов_КД", ТипКнопкиКоманднойПанели.Действие, "Обработка объектов", Новый Действие("ОбработкаОбъектов_КД"));
       
Кнопка.Подсказка = "Групповая обработка объектов";
       
Кнопка.Пояснение = "Групповая обработка объектов";

       
Кнопка = Элементыформы.КоманднаяПанельПКС.Кнопки.Добавить("РазделительОбработкаСвойств_КД", ТипКнопкиКоманднойПанели.Разделитель);
       
Кнопка = Элементыформы.КоманднаяПанельПКС.Кнопки.Добавить("ОбработкаСвойств_КД", ТипКнопкиКоманднойПанели.Действие, "Обработка свойств", Новый Действие("ОбработкаСвойств_КД"));
       
Кнопка.Подсказка = "Групповая обработка свойств";
       
Кнопка.Пояснение = "Групповая обработка свойств";
    КонецЕсли;

КонецПроцедуры

Процедура
ОбработкаОбъектов_КД(Кнопка)

   
ТекущееПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ТекущаяСтрока;
    Если
ТекущееПКО = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
СсылкаНаПКО = ТекущееПКО.Ссылка;
   
ВыбранныеПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ВыделенныеСтроки;

   
ГрупповаяОбработка = Обработки.УниверсальныеПодборИОбработкаОбъектов.Создать();
   
ГрупповаяОбработка.ТипОбъектовПоиска = Тип("СправочникСсылка.ПравилаКонвертацииОбъектов");
   
ФормаОбработки = ГрупповаяОбработка.ПолучитьФорму(, ЭтаФорма, Новый УникальныйИдентификатор);
   
ФормаОбработки.Открыть();

   
ПостроительОтбор = ФормаОбработки.ПостроительОтчета.Отбор;
   
// Дополнительный отбор на элементы
   
ОтборГруппа = ПостроительОтбор.Добавить("Объект.ЭтоГруппа");
   
ОтборГруппа.ВидСравнения = ВидСравнения.Равно;
   
ОтборГруппа.Значение = Ложь;
   
ОтборГруппа.Использование = Истина;
    Если
ВыбранныеПКО.Количество() > 1 Тогда
       
// Отбор на несколько выбранных ПКО
       
МассивСтрок = Новый Массив;
       
ЕстьГруппы = Ложь;
        Для Каждого
СтрокаПКО Из ВыбранныеПКО Цикл
            Если
СтрокаПКО.Ссылка.Пустая() Тогда
               
// Отбор на все ПКО (конвертацию)
               
МассивСтрок.Очистить();
               
ТекущееПКО = СтрокаПКО;
                Прервать;
            КонецЕсли;
           
МассивСтрок.Добавить(СтрокаПКО.Ссылка);
            Если
СтрокаПКО.ЭтоГруппа Тогда
               
ЕстьГруппы = Истина;
            КонецЕсли;
        КонецЦикла;
        Если
МассивСтрок.Количество() <> 0 Тогда
           
ОтборСписок = ПостроительОтбор.Добавить("Объект");
           
ОтборСписок.ВидСравнения = ?(ЕстьГруппы, ВидСравнения.ВСпискеПоИерархии, ВидСравнения.ВСписке);
           
ОтборСписок.Значение.ЗагрузитьЗначения(МассивСтрок);
           
ОтборСписок.Использование = Истина;
        КонецЕсли;
    Иначе
        Если НЕ
СсылкаНаПКО.Пустая() Тогда
           
// Отбор на текущее ПКО
           
Если НЕ ТекущееПКО.ЭтоГруппа Тогда
               
ОтборПКО = ПостроительОтбор.Добавить("Объект");
               
ОтборПКО.ВидСравнения = ВидСравнения.Равно;
               
ОтборПКО.Значение = СсылкаНаПКО;
               
ОтборПКО.Использование = Истина;
            КонецЕсли;
           
// Отбор на группу текущего ПКО
           
Если ТекущееПКО.ЭтоГруппа ИЛИ НЕ ТекущееПКО.Родитель.Пустая() Тогда
               
ОтборРодитель = ПостроительОтбор.Добавить("Объект.Родитель");
               
ОтборРодитель.ВидСравнения = ВидСравнения.ВИерархии;
               
ОтборРодитель.Значение = ?(ТекущееПКО.ЭтоГруппа, СсылкаНаПКО, ТекущееПКО.Родитель);
               
ОтборРодитель.Использование = ТекущееПКО.ЭтоГруппа;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
// Отбор на все ПКО (конвертацию)
   
ОтборКонвертация = ПостроительОтбор.Добавить("Объект.Владелец");
   
ОтборКонвертация.ВидСравнения = ВидСравнения.Равно;
   
ОтборКонвертация.Значение = ?(СсылкаНаПКО.Пустая(), Конвертация, ТекущееПКО.Владелец);
   
ОтборКонвертация.Использование = СсылкаНаПКО.Пустая();

   
ФормаОбработки.вВыполнитьОтчет();

КонецПроцедуры

Процедура
ОбработкаСвойств_КД(Кнопка)

   
ТекущееПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ТекущаяСтрока;
    Если
ТекущееПКО = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
СсылкаНаПКО = ТекущееПКО.Ссылка;
   
ВыбранныеПКС = ЭлементыФормы.ПравилаКонвертацииСвойств.ВыделенныеСтроки;

   
ГрупповаяОбработка = Обработки.УниверсальныеПодборИОбработкаОбъектов.Создать();
   
ГрупповаяОбработка.ТипОбъектовПоиска = Тип("СправочникСсылка.ПравилаКонвертацииСвойств");
   
ФормаОбработки = ГрупповаяОбработка.ПолучитьФорму(, ЭтаФорма, Новый УникальныйИдентификатор);
   
ФормаОбработки.Открыть();

   
ПостроительОтбор = ФормаОбработки.ПостроительОтчета.Отбор;
    Если
ВыбранныеПКС.Количество() > 1 Тогда
       
// Отбор на несколько выбранных ПКС
       
МассивСтрок = Новый Массив;
        Для Каждого
СтрокаПКС Из ВыбранныеПКС Цикл
           
МассивСтрок.Добавить(СтрокаПКС.Ссылка);
        КонецЦикла;
       
ОтборСписок = ПостроительОтбор.Добавить("Объект");
       
ОтборСписок.ВидСравнения = ВидСравнения.ВСписке;
       
ОтборСписок.Значение.ЗагрузитьЗначения(МассивСтрок);
       
ОтборСписок.Использование = Истина;
    Иначе
        Если НЕ
СсылкаНаПКО.Пустая() Тогда
           
// Отбор на текущее ПКО
           
Если НЕ ТекущееПКО.ЭтоГруппа Тогда
               
ОтборПКО = ПостроительОтбор.Добавить("Объект.Владелец");
               
ОтборПКО.ВидСравнения = ВидСравнения.Равно;
               
ОтборПКО.Значение = СсылкаНаПКО;
               
ОтборПКО.Использование = Истина;
            КонецЕсли;
           
// Отбор на группу текущего ПКО
           
Если ТекущееПКО.ЭтоГруппа ИЛИ НЕ ТекущееПКО.Родитель.Пустая() Тогда
               
ОтборРодитель = ПостроительОтбор.Добавить("Объект.Владелец.Родитель");
               
ОтборРодитель.ВидСравнения = ВидСравнения.ВИерархии;
               
ОтборРодитель.Значение = ?(ТекущееПКО.ЭтоГруппа, СсылкаНаПКО, ТекущееПКО.Родитель);
               
ОтборРодитель.Использование = ТекущееПКО.ЭтоГруппа;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
// Отбор на все ПКО (конвертацию)
   
ОтборКонвертация = ПостроительОтбор.Добавить("Объект.Владелец.Владелец");
   
ОтборКонвертация.ВидСравнения = ВидСравнения.Равно;
   
ОтборКонвертация.Значение = ?(СсылкаНаПКО.Пустая(), Конвертация, ТекущееПКО.Владелец);
   
ОтборКонвертация.Использование = СсылкаНаПКО.Пустая();

   
ФормаОбработки.вВыполнитьОтчет();

КонецПроцедуры

ЭтаФорма.УстановитьДействие("ПриОткрытии", Новый Действие("ПриОткрытии_КД"));

//} Конвертация данных

 

Для тех у кого с КД интегрирована подсистема "Инструменты разработчика" добавлять типовую обработку не надо (она уже есть в подсистеме) и код будет такой:

//{ Конвертация данных }

Процедура ПриОткрытии_КД()

   
// Типовой обработчик
   
ПриОткрытии();

    Если
Метаданные.Обработки.Найти("ирПодборИОбработкаОбъектов") = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
Кнопка = Элементыформы.КоманднаяПанельПКО.Кнопки.Добавить("РазделительОбработкаОбъектов_КД_ИР", ТипКнопкиКоманднойПанели.Разделитель);
   
Кнопка = Элементыформы.КоманднаяПанельПКО.Кнопки.Добавить("ОбработкаОбъектов_КД_ИР", ТипКнопкиКоманднойПанели.Действие, "Обработка объектов", Новый Действие("ОбработкаОбъектов_КД_ИР"));
   
Кнопка.Подсказка = "Групповая обработка объектов";
   
Кнопка.Пояснение = "Групповая обработка объектов";

   
Кнопка = Элементыформы.КоманднаяПанельПКС.Кнопки.Добавить("РазделительОбработкаСвойств_КД_ИР", ТипКнопкиКоманднойПанели.Разделитель);
   
Кнопка = Элементыформы.КоманднаяПанельПКС.Кнопки.Добавить("ОбработкаСвойств_КД_ИР", ТипКнопкиКоманднойПанели.Действие, "Обработка свойств", Новый Действие("ОбработкаСвойств_КД_ИР"));
   
Кнопка.Подсказка = "Групповая обработка свойств";
   
Кнопка.Пояснение = "Групповая обработка свойств";

КонецПроцедуры

Процедура
ОбработкаОбъектов_КД_ИР(Кнопка)

   
ТекущееПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ТекущаяСтрока;
    Если
ТекущееПКО = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
СсылкаНаПКО = ТекущееПКО.Ссылка;
   
ВыбранныеПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ВыделенныеСтроки;

   
ГрупповаяОбработка = Обработки.ирПодборИОбработкаОбъектов.Создать();
   
ФормаОбработки = ГрупповаяОбработка.ПолучитьФорму(, ЭтаФорма, "Справочник.ПравилаКонвертацииОбъектов");
   
ФормаОбработки.Открыть();

   
КомпоновщикОтбор = ФормаОбработки.Компоновщик.Настройки.Отбор.Элементы;
   
// Дополнительный отбор на элементы
   
ОтборГруппа = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   
ОтборГруппа.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоГруппа");
   
ОтборГруппа.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   
ОтборГруппа.ПравоеЗначение = Ложь;
   
ОтборГруппа.Использование = Истина;

    Если
ВыбранныеПКО.Количество() > 1 Тогда
       
// Отбор на несколько выбранных ПКО
       
СписокСтрок = Новый СписокЗначений;
       
ЕстьГруппы = Ложь;
        Для Каждого
СтрокаПКО Из ВыбранныеПКО Цикл
            Если
СтрокаПКО.Ссылка.Пустая() Тогда
               
// Отбор на все ПКО (конвертацию)
               
СписокСтрок.Очистить();
               
ТекущееПКО = СтрокаПКО;
                Прервать;
            КонецЕсли;
           
СписокСтрок.Добавить(СтрокаПКО.Ссылка);
            Если
СтрокаПКО.ЭтоГруппа Тогда
               
ЕстьГруппы = Истина;
            КонецЕсли;
        КонецЦикла;
        Если
СписокСтрок.Количество() <> 0 Тогда
           
ОтборСписок = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
           
ОтборСписок.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
           
ОтборСписок.ВидСравнения = ?(ЕстьГруппы, ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии, ВидСравненияКомпоновкиДанных.ВСписке);
           
ОтборСписок.ПравоеЗначение = СписокСтрок;
           
ОтборСписок.Использование = Истина;
        КонецЕсли;
    Иначе
        Если НЕ
СсылкаНаПКО.Пустая() Тогда
           
// Отбор на текущее ПКО
           
Если НЕ ТекущееПКО.ЭтоГруппа Тогда
               
ОтборПКО = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
               
ОтборПКО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
               
ОтборПКО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
               
ОтборПКО.ПравоеЗначение = СсылкаНаПКО;
               
ОтборПКО.Использование = Истина;
            КонецЕсли;
           
// Отбор на группу текущего ПКО
           
Если ТекущееПКО.ЭтоГруппа ИЛИ НЕ ТекущееПКО.Родитель.Пустая() Тогда
               
ОтборРодитель = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
               
ОтборРодитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
               
ОтборРодитель.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
               
ОтборРодитель.ПравоеЗначение = ?(ТекущееПКО.ЭтоГруппа, СсылкаНаПКО, ТекущееПКО.Родитель);
               
ОтборРодитель.Использование = ТекущееПКО.ЭтоГруппа;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
// Отбор на все ПКО (конвертацию)
   
ОтборКонвертация = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   
ОтборКонвертация.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец");
   
ОтборКонвертация.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   
ОтборКонвертация.ПравоеЗначение = ?(СсылкаНаПКО.Пустая(), Конвертация, ТекущееПКО.Владелец);
   
ОтборКонвертация.Использование = СсылкаНаПКО.Пустая();

   
ФормаОбработки.вВыполнитьОтчет();

КонецПроцедуры

Процедура
ОбработкаСвойств_КД_ИР(Кнопка)

   
ТекущееПКО = ЭлементыФормы.ПравилаКонвертацииОбъектов.ТекущаяСтрока;
    Если
ТекущееПКО = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
СсылкаНаПКО = ТекущееПКО.Ссылка;
   
ВыбранныеПКС = ЭлементыФормы.ПравилаКонвертацииСвойств.ВыделенныеСтроки;

   
ГрупповаяОбработка = Обработки.ирПодборИОбработкаОбъектов.Создать();
   
ФормаОбработки = ГрупповаяОбработка.ПолучитьФорму(, ЭтаФорма, "Справочник.ПравилаКонвертацииСвойств");
   
ФормаОбработки.Открыть();

   
КомпоновщикОтбор = ФормаОбработки.Компоновщик.Настройки.Отбор.Элементы;
    Если
ВыбранныеПКС.Количество() > 1 Тогда
       
// Отбор на несколько выбранных ПКС
       
СписокСтрок = Новый СписокЗначений;
        Для Каждого
СтрокаПКС Из ВыбранныеПКС Цикл
           
СписокСтрок.Добавить(СтрокаПКС.Ссылка);
        КонецЦикла;
       
ОтборСписок = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
       
ОтборСписок.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
       
ОтборСписок.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
       
ОтборСписок.ПравоеЗначение = СписокСтрок;
       
ОтборСписок.Использование = Истина;
    Иначе
        Если НЕ
СсылкаНаПКО.Пустая() Тогда
           
// Отбор на текущее ПКО
           
Если НЕ ТекущееПКО.ЭтоГруппа Тогда
               
ОтборПКО = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
               
ОтборПКО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец");
               
ОтборПКО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
               
ОтборПКО.ПравоеЗначение = СсылкаНаПКО;
               
ОтборПКО.Использование = Истина;
            КонецЕсли;
           
// Отбор на группу текущего ПКО
           
Если ТекущееПКО.ЭтоГруппа ИЛИ НЕ ТекущееПКО.Родитель.Пустая() Тогда
               
ОтборРодитель = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
               
ОтборРодитель.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец.Родитель");
               
ОтборРодитель.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
               
ОтборРодитель.ПравоеЗначение = ?(ТекущееПКО.ЭтоГруппа, СсылкаНаПКО, ТекущееПКО.Родитель);
               
ОтборРодитель.Использование = ТекущееПКО.ЭтоГруппа;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
// Отбор на все ПКО (конвертацию)
   
ОтборКонвертация = КомпоновщикОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   
ОтборКонвертация.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец.Владелец");
   
ОтборКонвертация.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   
ОтборКонвертация.ПравоеЗначение = ?(СсылкаНаПКО.Пустая(), Конвертация, ТекущееПКО.Владелец);
   
ОтборКонвертация.Использование = СсылкаНаПКО.Пустая();

   
ФормаОбработки.вВыполнитьОтчет();

КонецПроцедуры

ЭтаФорма.УстановитьДействие("ПриОткрытии", Новый Действие("ПриОткрытии_КД"));

//} Конвертация данных



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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. bubus 29.07.16 20:31 Сейчас в теме
Спасибо! Будем пробовать. Кое что уже сделал.
2. bubus 29.07.16 21:23 Сейчас в теме
А как у нескольких документов изменить убрать источник в ПКС, комментарий например?
Оставьте свое сообщение

См. также

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    20596    m-rv    17    

Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО

Интеграция Документоборот 2 Перенос данных из 1C8 в 1C8 v8 ДО КА2 Бесплатно (free)

Приветствую всех. Сегодня пойдет речь о том, как на одной крупной компании внедряли 1С:Документооборот 2.1 в связке с КА 2.4. Вроде бы системы типовые, мы практически не добавляли ничего в них, но проблем было столько, что я решил изложить их в статье. Может, кому-то пригодится это в дальнейшем, и не придется тратить кучу времени на поиск решений.

10.11.2020    3650    maks_20    21    

Передача параметров при обмене данными через конвертацию 2.1. Из 8.* в 7.7

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v8 КД Бесплатно (free)

Способ передать параметр в 7.7 при выгрузке данных через конвертацию из 8.2/8.3.

30.10.2020    334    dusha0020    4    

Простой пример разработки регулярного обмена с использованием БСП на примере ERP 2.4 и УПП 1.3

БСП (Библиотека стандартных подсистем) Перенос данных из 1C8 в 1C8 v8 1cv8.cf УПП1 КД ERP2 Россия Бесплатно (free)

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

27.10.2020    2834    байт    8    

Повышаем эффективность разработки правил обмена Промо

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    28627    olegtymko    47    

Конвертация данных 2. Использование подключаемых обработок в правилах обмена. Конвертация дерева значений

Обмен данными 1С Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Разработка правил обмена с использованием подключаемых обработок. В качестве примера рассмотрена реальная задача конвертации дерева значений.

15.06.2020    3723    Drivingblind    8    

Конвертация данных 2.1. Методика переноса остатков

Перенос данных из 1C8 в 1C8 v8 1cv8.cf УУ Бесплатно (free)

В данной статье я приведу пример использования базовой методики конвертации данных для переноса остатков из одной информационной базы в другую.

12.06.2020    6306    aximo    17    

Механизм XDTO

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Попытка понять механизм XDTO и его неочевидные аспекты. Научиться выполнять обмены между различными конфигурациями без оглядки на реализацию в типовых.

12.05.2020    5583    totchaz    4    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники Промо

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.

11.05.2018    23504    V.Stavinsky    11    

Механизмы проведения документов при обмене по универсальному формату

Перенос данных из 1C8 в 1C8 БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.

04.03.2020    5077    partizand    6    

Односторонний обмен ЗУП и БП

Перенос данных из 1C8 в 1C8 v8 БП3.0 ЗУП3.x Россия Бесплатно (free)

Односторонний обмен из ЗУП в БУХ

29.02.2020    5658    VAAngelov    14    

Автоматический обмен при появлении файла, по регламентному заданию создаёт файл выгрузки, даже если файл загрузки не появлялся

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Заметил, что "Автоматический обмен при появлении файла" каждый раз создаёт файл выгрузки данных, даже если файл для загрузки данных не появлялся. Данный код проверит, что файл появился, только после чего создаст файл выгрузки данных.

20.02.2020    2926    wau8824ru    4    

Взаимодействие между базами 1С через COM Промо

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассмотрено много особенностей взаимодействия между базами 1С по COM технологии

10.08.2015    154366    tormozit    65    

Бесшовная интеграция через обмен по правилам - миссия выполнима

Практика программирования Интеграция Перенос данных из 1C8 в 1C8 v8 ДО ERP2 Бесплатно (free)

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    5341    e-9    2    

Конвертация ставок НДС: из Перечисления в Справочник (правила обмена в конвертации 2.0)

Перенос данных из 1C8 в 1C8 v8 КД Россия НДС Бесплатно (free)

При написании правил обмена между "более старой" и "более новой" конфигурациями можно столкнуться с тем, что в одной конфигурации ставки НДС - это перечисление, а в другой - справочник (или наоборот, но мой пример именно из перечисления в справочник). Ситуация несложная, но нестандартная, поэтому выкладываю работающий пример, может, кому пригодится.

09.11.2019    6805    vikulinamari    1    

Настройка синхронизации между конфигурациями Бухгалтерия для Беларуси 2.1 и Управление торговлей для Беларуси 3.4

Перенос данных из 1C8 в 1C8 v8 БП3.0 УТ11 Беларусь Бесплатно (free)

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

21.10.2019    8081    Olesia_Matusevich    1    

Использование инструментов разработчика для отладки обменов КД 2.0 Промо

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Пара трюков, благодаря которым жить становится намного проще...

05.05.2017    27742    unichkin    3    

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

Обмен данными 1С Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 КД Бесплатно (free)

Есть очень неприятная особенность при настройке обмена по правилам КД2 в момент отладки на стороне 1С 7.7, как при выгрузке из 1С 7.7, так и при загрузке в 1С 7.7. Непонятно, в каком конкретно месте формирования или разбора данных XML файла в какой именно момент споткнулась программа (произошел сбой). Я нашел способ вывода дополнительной диагностики, теперь точно известно, на каком элементе данных XML споткнулся модуль выгрузки V77Exp.ert (модуль загрузки V77Imp.ert). Теперь отладка правил обмена на стороне 1С 7.7 стала простой, выполняется на порядок проще.

18.10.2019    5766    ksnik    5    

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

Обмен данными 1С Перенос данных из 1С7.7 в 1C8.X v7.7 v8 КД Бесплатно (free)

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

17.10.2019    8261    ksnik    0    

Объединение организаций в ЗУП при реорганизации с переносом данных из ЗУП 2.5 в ЗУП 3.1

Зарплата Управление персоналом (HRM) Перенос данных из 1C8 в 1C8 v8 v8::СПР ЗУП2.5 ЗУП3.x БУ Бесплатно (free)

В этой статье описан опыт объединения 2-х организаций при реорганизации в ЗУП 3.1 с переносом данных одной организации из ЗУП 2.5 (релизы баз более или менее свежие, но не самые последние на момент перехода, примерно двух- и трехмесячной давности). За основу было взято решение из этой статьи https://infostart.ru/public/833658/, в которой описан алгоритм решения задачи, за что автору статьи огромная благодарность! Здесь же даны некоторые комментарии и пояснения к алгоритму переноса и объединения, описаны выявленные мною ошибки. Также приведена небольшая инструкция по использованию обработки ирПодборИОбработкаОбъектовБД — она будет полезна для пользователей — «не программистов», впервые работающих в не управляемых формах.

09.10.2019    8144    Neti    2    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    67760    tormozit    27    

EnterpriseData: простой способ защиты данных в базе получателя при одностороннем обмене

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Очень часто бухгалтеры ругаются, когда уже отраженные документы в бухгалтерском учета меняются сотрудниками.

04.10.2019    7312    handscenter    12    

Дозагрузка измененных данных при помощи КД2

Практика программирования Перенос данных из 1C8 в 1C8 v8 Россия Бесплатно (free)

Иногда во время каких-то регламентных действий по обслуживанию базы(например, при обновлении измененной базы на много релизов) требуется обеспечить бесперебойность работы пользователей. Если конфигурации баз до и после идентичны, то тут сам Бог велел воспользоваться обработкой "ВыгрузкаЗагрузкаДанныхXML", либо такой же но с отбором(на Инфостарте есть такая). Но что если конфигурации баз различаются/значительно различаются? Ниже опишу, как вышел из положения я.

12.09.2019    4940    al_zzz    2    

Конвертация Данных. Нюансы использования конструкции "НеЗамещатьОбъект = Истина" в обработчике события "ПриЗагрузке"

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

У конвертации данных есть «особенности», которые «пьют кровь» программистов. Эта статья про очередную обнаруженную «особенность».

10.09.2019    10397    ivanek    21    

Настройка типового обмена данными между: 1С: Предприятие Бухгалтерия ред. 3.0 (БП 3.0) и 1С: Управление торговлей ред. 10.3 (УТ 10.3). Промо

Перенос данных из 1C8 в 1C8 v8 УТ10 Россия Бесплатно (free)

В этой статье я опишу, как настраивается типовой обмен данными между БП 3.0 и УТ 10.3.

29.01.2014    269215    arr    54    

Обмен данными через Web Сервисы

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Ознакомительная статья о том, как загружать\выгружать данные с одной базы в другую, используя Web Сервисы.

02.09.2019    25945    user5300    42    

Выгрузка и загрузка документов с движениями

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

02.09.2019    7798    human_new    9    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    15507    ids79    8    

Отладка правил обмена 7.7, 8 Промо

Перенос данных из 1С7.7 в 1C8.X Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

29.10.2013    51639    pyrkin_vanya    70    

Перенос дополнительных реквизитов в Конвертации данных 2.0

Перенос данных из 1C8 в 1C8 v8 КД Россия УУ Бесплатно (free)

Пример написания правил обмена (КД 2.0) для переноса дополнительных реквизитов справочника "Номенклатура", в том числе перенос ПВХ с разными типами значений.

13.08.2019    12185    vikulinamari    8    

Синхронизация данных между 1С: ЗУП 3.1 и Бухгалтерией 3.0 через файл

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

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

23.04.2019    15214    saveliev    6    

Полезные приемы при работе с Конвертацией данных 2.1. Логирование, интерактивное управление, дозаполнение и постпроведение документов

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Некоторые полезные приемы для КД 2.1, которые могут пригодиться как при доработке типовых правил, так и самописных.

22.04.2019    10217    maks_20    9    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    41625    YPermitin    41    

Работа с ComОбъектом 1С 8.2; 8.3

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Определение типов и значений через COM соединение между конфигурациями.

15.04.2019    22923    vik070777    12    

Обмен данными между УПП 1.3.64.х и БП 3.0 по расписанию через Универсальный обмен данными + План обмена

Обмен через XML Перенос данных из 1C8 в 1C8 v8 УПП1 Россия Бесплатно (free)

Описание доработки конфигурации УПП 1.3.64.х для выполнения обмена данными по расписанию в БП 3.0. через обработку Универсальный Обмен Данными XML и План Обмена.

09.04.2019    7513    mrcamomile    15    

RabbitMQ + Конвертация Данных 3.0

Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

21.03.2019    27031    barelpro    82    

Обмен по расписанию типовыми средствами. Промо

Распределенная БД (УРИБ, УРБД) Обмен через XML Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.). Для обмена используется подсистема "Обмен данными" из БСП

20.06.2012    103320    kser87    52    

Конвертация данных 2.1: поиск по условию

Перенос данных из 1C8 в 1C8 v8 КД ERP2 Бесплатно (free)

Задача. При обмене документами "Реализация товаров и услуг", поиск контрагента осуществлять по полям "ИНН", "КПП". Если вид договора с комиссионером, то поиск осуществлять по полям "ИНН", "КПП", "Наименование".

15.01.2019    16829    wowik    13    

Заметки КД 2.1: Как передать файл, динамически создаваемый в источнике, в справочник присоединенных файлов приемника

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

В БП 3.0 есть документ "Книга Продаж Для Передачи В ЭлектронномВиде" из которого выгружается XML файл. Задача: Нужно из БП 3.0 посредством правил обмена, вместе с документом книга продаж сформировать и перенести XML файл в базу приемник. В приемнике файл будет храниться в справочнике "Книга Продаж Присоединенные Файлы".

10.10.2018    10192    Viktor_Ermakov    6    

Планы обмена 1С

Перенос данных из 1C8 в 1C8 Интеграция v8 Бесплатно (free)

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

10.09.2018    63129    zhichkin    32    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30580    anig99    6    

Конвертация 2.0. Обмен данными между справочниками по сопоставлению артикулов с помощью регистра сведений (пример).

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Пример обмена данными между справочниками по сопоставлению артикулов с помощью регистра сведений

27.08.2018    9700    Lyubogradov.P    1    

Альтернатива переноса ТЗ в конвертации данных 2.1

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Здравствуйте уважаемые. Решил выложить альтернативный способ переноса данных в конвертации данных из источника к приемнику, с последующим сбором их в ТЗ в месте ПослеЗагрузки. Т.е.можно готовый перенесенный объект доработать либо создать что-то еще на базе данных. Метод сам разработан с учетом простого понимания Конвертации без использования всех её многочисленных тонкостей и сложностей. В примере рассматривается перенос Операции. И вот еще что. Я не привожу тут готовое решение, я всего лишь показываю концепцию того, как можно делать в КД. Без использования глобальных переменных.

20.08.2018    6980    dinopopyys    6    

Конвертация 2.0. Перенос независимого справочника в подчиненный (пример).

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

Пример переноса независимого справочника в подчиненный с помощью Конвертации 2.0.

15.08.2018    11118    Lyubogradov.P    6    

Интеграция «1С:Управление производственным предприятием» с «1С:Документооборот» Промо

Перенос данных из 1C8 в 1C8 Документооборот и делопроизводство Документооборот и делопроизводство v8 КА1 УПП1 ДО Бесплатно (free)

В данной статье пойдет речь о возможности интеграции 1С:Управление производственным предприятием ред. 1.3 с 1С:Документооборот КОРП и о том, что может получить предприятие от этой интеграции.

18.02.2013    63730    Vladimir_Konyrev    38    

Конвертация 2.0. Перенос элементов и групп справочника, имеющих различный вид иерархии (пример).

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

Пример переноса справочника, имеющего различный вид иерархии, с помощью Конвертации 2.0.

13.08.2018    10369    Lyubogradov.P    0    

hsИнтегратор - технология онлайнового обмена данными между базами на платформе 1С:Предприятие. Использование технологии в виде расширения, без изменения конфигураций баз данных, участвующих в обмене

Перенос данных из 1C8 в 1C8 v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

hsИнтегратор : Простое в использовании решение, работает в качестве клиента и сервиса (в мобильном приложении – только клиента). Не обязательно требует внесения изменений в конфигурации интегрируемых баз данных. Маленький трафик обмена между клиентом и сервером, быстрая реакция на запросы со стороны клиента. Единый сервис для обмена данными различной структуры, механизмы для обеспечения безопасности.

25.06.2018    12326    hobi    8    

Обмен через универсальный формат. Пример нестандартной конвертации данных

Обмен через XML Перенос данных из 1C8 в 1C8 v8 УТ11 Россия Бесплатно (free)

В статье описан небольшой пример обмена данными через EnterpriseData без снятия конфигурации с поддержки. Тестовая площадка: Управление торговлей, редакция 11 (11.4.3.126), версия платформы 8.3.11

18.06.2018    36847    artkor    14    

Особенности обмена данными с использованием "ручной" регистрации Промо

Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Эта статья рассчитана на программистов, которые используют обмен данными с помощью метода "ВыбратьИзменения" и последующую их запись. Только для планов обменов, имеющих "ручную" регистрацию.

14.01.2013    33987    logarifm    6    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть ІІІ: Регистры сведений

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Часть III публикаций об универсальном обмен через REST интерфейс OData - обмен регистрами сведений

26.05.2018    9820    V.Stavinsky    4    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть ІІ: Документы

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Продолжение статьи об универсальном обмене между идентичными конфигурации через REST интерфейс OData (https://infostart.ru/public/829356/). В части второй разберем особенности обмена документами.

19.05.2018    11701    V.Stavinsky    5