30.04.2026 Марс Айзатуллов 324
Установка общего реквизита cls код SAP
Содержание
1. Конфигурация ERP Управление Холдингом 2.5
2. Внешний вид обработки и назначения  

1. Конфигурация ERP Управление Холдингом 2.5


Требуется разработать обработку для списка объектов установить общий реквизит cls_КодSAP вместо реквизита, который создали отдельно.


У каждого объекта этот реквизит называется по-разному, например, у справочника ВидыНоменклатуры cls_Код, ВидыРабочихЦентров cls_КодSAP так же, как и общий реквизит cls_КодSAP, СкладскиеПомещения cls_КодСАП, План видов характеристик СтатьиРасходов кл_Код.


Список объектов:

1. Справочники: ВидыНоменклатуры, ВидыРабочихЦентров, Номенклатура, Партнеры, РабочиеЦентры, РемонтныеМероприятия, СкладскиеПомещения, Склады, ХарактеристикиНоменклатуры, cls_СферыДеятельности, Организации, СтруктураПредприятия.


2. План видов характеристик: СтатьиДоходов, СтатьиРасходов.

По нажатии кнопки «ВыгрузитьСтарыеКоды» все коды выгружаются в выбранный в интерфейсе текстовый файл по полям «ВидСправочника», «cls_Код» и «ГУИД». Т.е. по Уникальным идентификаторам.

При варианте установки флага «Записать» по кнопке «Установить cls_КодSAP» устанавливается коды cls_КодSAP из источника (текстовый файл).

Предварительно можно проверить алгоритм без установки флага «Записать».

После установки общего реквизита cls_КодSAP все реквизиты cls_Код, cls_КодSAP, cls_КодСАП и кл_Код удаляем с объектов.  


2. Внешний вид обработки и назначения



Установка общего реквизита cls код SAP


Процедуры и функции обработки:


#Область Установить_cls_КодSAP

 

&НаКлиенте

Процедура Установить_cls_КодSAP(Команда)

   

    Если Не ЗначениеЗаполнено(ПутьКФайлуTXT) Тогда

       

        Сообщить("Не выбрать ПутьКФайлуTXT");    

       

        Возврат;

       

    КонецЕсли;

   

    ФайлTXT = Новый ТекстовыйДокумент;

   

    ФайлTXT.Прочитать(ПутьКФайлуTXT);

   

    ОбработатьСправочники(ПутьКФайлуTXT, ФайлTXT, Записать);

   

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

 

&НаСервереБезКонтекста

Процедура ОбработатьСправочники(ПутьКФайлуTXT, ФайлTXT, Записать)

   

    К = 0;  

   

    ОписаниеТипаСтрока36 = ОбщегоНазначения.ОписаниеТипаСтрока(36);

   

    ТЗ = Новый ТаблицаЗначений;

    ТЗ.Колонки.Добавить("ВидСправочника", ОписаниеТипаСтрока36);

    ТЗ.Колонки.Добавить("cls_Код",        ОписаниеТипаСтрока36);

    ТЗ.Колонки.Добавить("ГУИД",           ОписаниеТипаСтрока36);

   

    Для НомерСтроки = 1 по ФайлTXT.КоличествоСтрок() Цикл

       

        ТекСтрока = ФайлTXT.ПолучитьСтроку(НомерСтроки);

       

        МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов(ТекСтрока, ";");

       

        ВидСправочника = МассивСтрок[0];

        cls_Код        = МассивСтрок[1];

        ГУИД           = МассивСтрок[2];

       

        НоваяСтрока = ТЗ.Добавить();

       

        НоваяСтрока.ВидСправочника = ВидСправочника;

        НоваяСтрока.cls_Код        = cls_Код;

        НоваяСтрока.ГУИД           = ГУИД;

       

    КонецЦикла;

   

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    |    ТЗ.ВидСправочника КАК ВидСправочника,

    |    ТЗ.cls_Код КАК cls_Код,

    |    ТЗ.ГУИД КАК ГУИД

    |ПОМЕСТИТЬ втТЗ

    |ИЗ

    |    &ТЗ КАК ТЗ

    |;

    |

    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ

    |    втТЗ.ВидСправочника КАК ВидСправочника,

    |    втТЗ.cls_Код КАК cls_Код,

    |    втТЗ.ГУИД КАК ГУИД

    |ИЗ

    |    втТЗ КАК втТЗ";

   

    Запрос.УстановитьПараметр("ТЗ", ТЗ);

   

    РезультатЗапроса = Запрос.Выполнить();

   

    таб = РезультатЗапроса.Выгрузить();

   

    Выборка = РезультатЗапроса.Выбрать();

   

    Пока Выборка.Следующий() Цикл  

       

        К = К + 1;

       

        ВидСправочника = Выборка.ВидСправочника;

        cls_Код        = Выборка.cls_Код;

        ГУИД           = Выборка.ГУИД;

       

        //Сообщить("ВидСправочника = " + ВидСправочника);

        //Сообщить("cls_Код = " + cls_Код);

        //Сообщить("ГУИД = " + ГУИД);

       

        ГУИД = Новый УникальныйИдентификатор(ГУИД);

       

        Если ВидСправочника = "СтатьиДоходов" или ВидСправочника = "СтатьиРасходов" Тогда

            Ссылка = ПланыВидовХарактеристик[ВидСправочника].ПолучитьСсылку(ГУИД);

        Иначе

            Ссылка = Справочники[ВидСправочника].ПолучитьСсылку(ГУИД);

        КонецЕсли;

       

        Если ЗначениеЗаполнено(Ссылка) Тогда

           

            СпрОбъект = Ссылка.ПолучитьОбъект();

           

            СпрОбъект.cls_КодSAP = Выборка.cls_Код;

           

            Если Записать Тогда

               

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

               

            КонецЕсли;

           

            Если К >= 1 Тогда

               

                //Прервать;   

               

            КонецЕсли;

           

        КонецЕсли;

       

    КонецЦикла;

   

    Сообщить("Обработан " + К + " элементов!");

   

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

 

#КонецОбласти

 

#Область ВыгрузитьСтарыеКоды

 

&НаКлиенте

Процедура ВыгрузитьСтарыеКоды(Команда)

   

    Файл = Новый Файл(ПутьКФайлуTXT);

   

    Если Не Файл.Существует() Тогда

        Сообщить("Файл не существует или нет доступа к файлу тхт!");

        Возврат;

    КонецЕсли;

   

    ФайлTXT = Новый ТекстовыйДокумент;

   

    ВыгрузитьКодыСправочников(ПутьКФайлуTXT, ФайлTXT);

   

    ФайлTXT.Записать(ПутьКФайлуTXT);

   

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

 

&НаСервереБезКонтекста

Процедура ВыгрузитьКодыСправочников(ПутьКФайлуTXT, ФайлTXT)

   

    К = 0;

   

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    |    ""ВидыНоменклатуры"" КАК ВидСправочника,

    |    ВидыНоменклатуры.cls_Код КАК cls_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ВидыНоменклатуры.Ссылка) КАК ГУИД

    |ИЗ

    |    Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры

    |ГДЕ

    |    ВидыНоменклатуры.cls_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""ВидыРабочихЦентров"",

    |    ВидыРабочихЦентров.cls_КодSAP,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ВидыРабочихЦентров.Ссылка)

    |ИЗ

    |    Справочник.ВидыРабочихЦентров КАК ВидыРабочихЦентров

    |ГДЕ

    |    ВидыРабочихЦентров.cls_КодSAP <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""Номенклатура"",

    |    Номенклатура.cls_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Номенклатура.Ссылка)

    |ИЗ

    |    Справочник.Номенклатура КАК Номенклатура

    |ГДЕ

    |    Номенклатура.cls_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""Партнеры"",

    |   Партнеры.cls_КодSAP,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Партнеры.Ссылка)

    |ИЗ

    |    Справочник.Партнеры КАК Партнеры

    |ГДЕ

    |    Партнеры.cls_КодSAP <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""РабочиеЦентры"",

    |    РабочиеЦентры.cls_КодSAP,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(РабочиеЦентры.Ссылка)

    |ИЗ

    |    Справочник.РабочиеЦентры КАК РабочиеЦентры

    |ГДЕ

    |    РабочиеЦентры.cls_КодSAP <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""РемонтныеМероприятия"",

    |    РемонтныеМероприятия.cls_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(РемонтныеМероприятия.Ссылка)

    |ИЗ

    |    Справочник.РемонтныеМероприятия КАК РемонтныеМероприятия

    |ГДЕ

    |    РемонтныеМероприятия.cls_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""СкладскиеПомещения"",

    |    СкладскиеПомещения.cls_КодСАП,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(СкладскиеПомещения.Ссылка)

    |ИЗ

    |    Справочник.СкладскиеПомещения КАК СкладскиеПомещения

    |ГДЕ

    |    СкладскиеПомещения.cls_КодСАП <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""Склады"",

    |    Склады.cls_КодСАП,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Склады.Ссылка)

    |ИЗ

    |    Справочник.Склады КАК Склады

    |ГДЕ

    |    Склады.cls_КодСАП <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""ХарактеристикиНоменклатуры"",

    |    ХарактеристикиНоменклатуры.cls_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ХарактеристикиНоменклатуры.Ссылка)

    |ИЗ

    |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры

    |ГДЕ

    |    ХарактеристикиНоменклатуры.cls_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""cls_СферыДеятельности"",

    |    cls_СферыДеятельности.КодCls,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(cls_СферыДеятельности.Ссылка)

    |ИЗ

    |    Справочник.cls_СферыДеятельности КАК cls_СферыДеятельности

    |ГДЕ

    |    cls_СферыДеятельности.КодCls <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""Организации"" КАК ВидСправочника,

    |    Организации.кл_Код КАК cls_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Организации.Ссылка) КАК ГУИД

    |ИЗ

    |    Справочник.Организации КАК Организации

    |ГДЕ

    |    Организации.кл_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""СтруктураПредприятия"",

    |    СтруктураПредприятия.кл_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(СтруктураПредприятия.Ссылка)

    |ИЗ

    |    Справочник.СтруктураПредприятия КАК СтруктураПредприятия

    |ГДЕ

    |    СтруктураПредприятия.кл_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""СтатьиДоходов"",

    |    СтатьиДоходов.кл_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(СтатьиДоходов.Ссылка)

    |ИЗ

    |    ПланВидовХарактеристик.СтатьиДоходов КАК СтатьиДоходов

    |ГДЕ

    |    СтатьиДоходов.кл_Код <> """"

    |

    |ОБЪЕДИНИТЬ ВСЕ

    |

    |ВЫБРАТЬ

    |    ""СтатьиРасходов"",

    |    СтатьиРасходов.кл_Код,

    |    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(СтатьиРасходов.Ссылка)

    |ИЗ

    |    ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов

    |ГДЕ

    |    СтатьиРасходов.кл_Код <> """"";

   

    РезультатЗапроса = Запрос.Выполнить();

   

    Выборка = РезультатЗапроса.Выбрать();

   

    Пока Выборка.Следующий() Цикл

       

        К = К + 1;

       

        ФайлTXT.ДобавитьСтроку("" + Выборка.ВидСправочника + ";" + Выборка.cls_Код + ";" + Выборка.ГУИД);

       

        Если К >= 1 Тогда

           

            //Прервать;   

           

        КонецЕсли;

       

    КонецЦикла;

   

    Сообщить("Обработано " + К + " элементов!");

   

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

 

&НаКлиенте

Процедура ПутьКФайлуTXTНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)

   

    Режим = РежимДиалогаВыбораФайла.Открытие;

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

    ДиалогОткрытияФайла.ПолноеИмяФайла = "";

    ДиалогОткрытияФайла.Фильтр = "txt";

    ДиалогОткрытияФайла.МножественныйВыбор = Истина;

    ДиалогОткрытияФайла.Заголовок = "Выберите txt файл";

   

  Если ДиалогОткрытияФайла.Выбрать() Тогда

        МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;

        Для Каждого ИмяФайла Из МассивФайлов Цикл

            ВыбФайл = Новый Файл(ИмяФайла);

            ПутьКФайлуTXT = ИмяФайла;

        КонецЦикла;

    Иначе

        Предупреждение("Файл не выбран!");

    КонецЕсли;

   

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

 

#КонецОбласти


Специалист компании ООО "Кодерлайн"

Марс Айзатуллов

Наши проекты

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-проце...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

Внедренное типовое решение:
1С:Комплексная автоматизация

- Разработка подсистемы оперативного учета транзакций...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Управление производственным предприятием

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление производственным предприятием

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

Госкорпорация «Ростех»
Госкорпорация «Ростех»

Отрасль:
Производство, ТЭК >> Машиностроение, приборостроение

Внедренное типовое решение:
1С:Управление холдингом 1.3.

Специалисты «Кодерлайн» помогли разработать и внедрить автоматизированную...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- ...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Бухгалтерский учет Банк и касса Расчеты с контрагентами Торговые операции ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение