Копирование группы номенклатуры с иерархией вложенных элементов

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

Разработка - Практика программирования

копирование номенклатура иерархия вложенные

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

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

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

Для начала открываем конфигурацию и в справочнике "Номенклатура" открываем "Форму списка" выбираем табличное поле "Список" и в свойствах ставим птицу "Разрешить перетаскивание".

Листаем свойства вниз и нажимаем открыть на трёх следующих событиях:

"Начало перетаскивания" - втавляем следующий код

Процедура СписокНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.КопированиеИПеремещение;
КонецПроцедуры

"Проверка перетаскивания" - втавляем следующий код 

Процедура СписокПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    СтандартнаяОбработка=Ложь;
КонецПроцедуры

и напоследок само "Претаскивание" - втавляем следующий код

Процедура СписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)

    // Для Левой клавиши мышки происходит простое перетаскивание и тут нам ничего не нужно делать
    // Если же оператор потянул группу товаров правой клавишей...

    Если ПараметрыПеретаскивания.Действие=ДействиеПеретаскивания.Выбор Тогда
        СтандартнаяОбработка=Ложь;

        //Готовим список действий для нашего контекстного меню
        Действия=Новый СписокЗначений;
        Действия.Добавить("Переместить","Переместить");
        Действия.Добавить("Копировать","Копировать");
        Действия.Добавить("Отмена","Отмена");

        //Выводим меню рядом с нашим элементом и ждём ответа пользователя
        Попытка
            Действие=ВыбратьИзМеню(Действия,Элемент).Значение;
        Исключение
            Действие="Отмена"; //Если щёлкнул вообще мимо 
        КонецПопытки;

        Если Действие="Переместить" Тогда //Передаём обработку стандартному механизму перетаскивания

            ПараметрыПеретаскивания.Действие=ДействиеПеретаскивания.Перемещение;
            СтандартнаяОбработка=Истина;

        ИначеЕсли Действие="Копировать" Тогда //Собственно выбираем элементы (ветку) для дальнейшей обработки
            Запрос = Новый Запрос("ВЫБРАТЬ
            |    Номенклатура.Ссылка
            |ИЗ
            |    Справочник.Номенклатура КАК Номенклатура
            |ГДЕ
            |    Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
            |УПОРЯДОЧИТЬ ПО
            |    Номенклатура.Ссылка ИЕРАРХИЯ"
            );
            Запрос.УстановитьПараметр("Группа", Элемент.ТекущаяСтрока);

            //Вызываем рекурсивную процедуру, параметр "строка" - это "получатель", куда будет скопирована ветка
            Копировать(Строка,Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией));

        КонецЕсли;

    КонецЕсли;    
КонецПроцедуры

Для того, чтобы всё заработало нам нужна ещё одна рекурсивная процедура "Копировать"

Процедура Копировать(Предок,Выборка) //Рекурсивная процедура для обхода всего дерева

    Если Не Предок.ЭтоГруппа Тогда //Если перетащили не на группу, то кидаем всё дерево в корень
        Предок=Справочники.Номенклатура.ПустаяСсылка();
    КонецЕсли;    

    Пока Выборка.Следующий() Цикл //Обходим все элементы и просто копируем всё подряд
        
        //Поскольку выборка добывает нам ссылки для изменения с объекта его необходимо получить
        ТекСпр = Выборка.Ссылка.ПолучитьОбъект();
        элементСправочника = ТекСпр.Скопировать();
        элементСправочника.Родитель=Предок;

        // ** Если мы хотим запомнить откуда была скопирована номенклатура - нужно            **
        // ** предварительно добавить реквизит ОбразецНоменклатуры в справочник Номенклатура  **  
        // ** типа "СправочникСсылка.Номенклатура" а затем раскомментировать следующую строку **
        //элементСправочника.ОбразецНоменклатуры=ТекСпр.Ссылка;

        // При желании здесь можно создавать подчинённые справочники вроде "единицы измерения" 
        // и сюда записывать все необходимые ссылки

        элементСправочника.Записать();

        Если ТекСпр.ЭтоГруппа Тогда //Когда встречаем группу, то заходим внутрь и повторяем действия
            Копировать(элементСправочника.Ссылка,Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией));
        КонецЕсли;

    КонецЦикла;    
КонецПроцедуры

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. rus128 2 01.03.17 11:40 Сейчас в теме
Все хорошо, только опечатка "втавляем" (3 раза).
2. japopov 60 01.03.17 11:54 Сейчас в теме
По-первых, у Вас - под обычные формы, хорошо бы предупредить. Под управляемое приложение придётся переписывать.
Во-вторых, плохая реализация. Рекурсия отрабатывает очень медленно, нагружает машину (в Вашем случае - клиента) и чревата переполнением стека для многоуровневых справочников.
Тем более, что Вы делаете запрос по копируемым объектам. Что мешает обойтись вообще без рекурсии? Немного подумать - и сделать простым построчным обходом таблицы. Сработает в разы быстрее, и разница будет тем больше, чем большее число уровней вложенности.
3. DrAku1a 1314 02.03.17 02:58 Сейчас в теме
Копирование без рекурсии
Запрос = Новый Запрос("ВЫБРАТЬ
	|	Номенклатура.Ссылка,
	|	Номенклатура.ЭтоГруппа,
	|	Номенклатура.Родитель
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Номенклатура.Ссылка ИЕРАРХИЯ");
Запрос.УстановитьПараметр("Группа", Элемент.ТекущаяСтрока);

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
	Возврат;
КонецЕсли;

Предок = ?(Строка.ЭтоГруппа, Строка, Справочники.Номенклатура.ПустаяСсылка()); //Если перетащили не на группу, то кидаем всё дерево в корень
мСоответствиеГрупп = новый Соответствие;
мСоответствиеГрупп.Вставить(Элемент.ТекущаяСтрока.Родитель, Предок);

Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);
Пока Выборка.Следующий() Цикл
      ТекСпр = Выборка.Ссылка.ПолучитьОбъект();
      элементСправочника = ТекСпр.Скопировать();
      элементСправочника.Родитель = мСоответствиеГрупп[Выборка.Родитель];

      // ** Если мы хотим запомнить откуда была скопирована номенклатура - нужно            **
      // ** предварительно добавить реквизит ОбразецНоменклатуры в справочник Номенклатура  **  
      // ** типа "СправочникСсылка.Номенклатура" а затем раскомментировать следующую строку **
      //элементСправочника.ОбразецНоменклатуры=ТекСпр.Ссылка;

      // При желании здесь можно создавать подчинённые справочники вроде "единицы измерения" 
      // и сюда записывать все необходимые ссылки

      элементСправочника.Записать();

      Если Выборка.ЭтоГруппа Тогда //Когда встречаем группу, то запоминаем её
          мСоответствиеГрупп.Вставить(Выборка.Ссылка, элементСправочника.Ссылка);
      КонецЕсли;	
КонецЦикла;
Показать
Поручик; +1 Ответить
6. Поручик 4409 17.09.18 08:53 Сейчас в теме
7. elian 83 19.02.19 21:21 Сейчас в теме
Действительно хорошая задумка!
8. user705522_constantin_h 24 26.06.19 11:25 Сейчас в теме
Для управляемых форм:
&НаКлиенте
Процедура СписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)

    // Для Левой клавиши мышки происходит простое перетаскивание и тут нам ничего не нужно делать
    // Если же оператор потянул группу товаров правой клавишей...

    Если ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Выбор Тогда
        СтандартнаяОбработка = Ложь;

        //Готовим список действий для нашего контекстного меню
        Действия = Новый СписокЗначений;
        Действия.Добавить("Переместить","Переместить");
        Действия.Добавить("Копировать","Копировать");
        Действия.Добавить("Отмена","Отмена");

		ДополнительныеПараметры = Новый Структура;
		ДополнительныеПараметры.Вставить("ПараметрыПеретаскивания", ПараметрыПеретаскивания);
		ДополнительныеПараметры.Вставить("Элемент", Элемент);
		ДополнительныеПараметры.Вставить("Строка", Строка);
		
        //Выводим меню рядом с нашим элементом и ждём ответа пользователя
		ОповещениеПослеВыбораЭлемента = Новый ОписаниеОповещения("СообщитьРезультат", ЭтотОбъект, ДополнительныеПараметры);
		Действия.ПоказатьВыборЭлемента(ОповещениеПослеВыбораЭлемента, "Выберите действие");

    КонецЕсли;    
КонецПроцедуры

&НаКлиенте
Процедура СообщитьРезультат(Элемент, Параметры) Экспорт
		Если Элемент.Значение = "Переместить" Тогда //Передаём обработку стандартному механизму перетаскивания

            Параметры.ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение;
            СтандартнаяОбработка=Истина;

        ИначеЕсли Элемент.Значение = "Копировать" Тогда //Собственно выбираем элементы (ветку) для дальнейшей обработки

			ВыполнитьКопирование(Параметры.Элемент.ТекущаяСтрока, Параметры.Строка);
        КонецЕсли;
КонецПроцедуры


&НаСервере
Процедура ВыполнитьКопирование(ТекущаяГруппа, Строка)
	Запрос = Новый Запрос("ВЫБРАТЬ
	|    Номенклатура.Ссылка,
	|    Номенклатура.ЭтоГруппа,
	|    Номенклатура.Родитель
	|ИЗ
	|    Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|    Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Номенклатура.Ссылка ИЕРАРХИЯ");
	Запрос.УстановитьПараметр("Группа", ТекущаяГруппа);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат;
	КонецЕсли;
	
	Предок = ?(Строка.ЭтоГруппа, Строка, Справочники.Номенклатура.ПустаяСсылка()); //Если перетащили не на группу, то кидаем всё дерево в корень
	мСоответствиеГрупп = новый Соответствие;
	мСоответствиеГрупп.Вставить(ТекущаяГруппа.Родитель, Предок);
	
	Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);
	Пока Выборка.Следующий() Цикл
		ТекСпр = Выборка.Ссылка.ПолучитьОбъект();
		элементСправочника = ТекСпр.Скопировать();
		элементСправочника.Родитель = мСоответствиеГрупп[Выборка.Родитель];
		
		// ** Если мы хотим запомнить откуда была скопирована номенклатура - нужно            **
		// ** предварительно добавить реквизит ОбразецНоменклатуры в справочник Номенклатура  **  
		// ** типа "СправочникСсылка.Номенклатура" а затем раскомментировать следующую строку **
		//элементСправочника.ОбразецНоменклатуры=ТекСпр.Ссылка;
		
		// При желании здесь можно создавать подчинённые справочники вроде "единицы измерения" 
		// и сюда записывать все необходимые ссылки
		
		элементСправочника.Записать();
		
		Если Выборка.ЭтоГруппа Тогда //Когда встречаем группу, то запоминаем её
			мСоответствиеГрупп.Вставить(Выборка.Ссылка, элементСправочника.Ссылка);
		КонецЕсли;    
	КонецЦикла;
КонецПроцедуры
Показать
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

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

22.04.2020    4628    23    Infostart    2    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

27.01.2020    19139    0    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

15.01.2020    18518    0    John_d    22    

Последовательности событий. Шпаргалка

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    13454    0    kuzyara    33    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

10.12.2016    35501    0    unichkin    45    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    14629    0    YPermitin    72    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    6803    0    Sibars    19    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    28214    0    Yashazz    45    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    27934    0    tormozit    100    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    39744    0    rpgshnik    62    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    41877    0    ids79    54    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    24423    0    YPermitin    24    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    75420    0    tormozit    129    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    23138    0    YPermitin    80    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    28280    0    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    65264    0    ids79    40    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

11.07.2007    46315    0    tormozit    38    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    29314    0    avalakh    22    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    19759    0    json    12    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    48907    0    ids79    11    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    42342    0    tormozit    74    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    31512    0    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    23815    0    YPermitin    13    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    17706    0    SeiOkami    50    

Выгрузка документа по условию Промо

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    15408    0    m-rv    2    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    38507    0    ids79    10    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    45994    0    ids79    25    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    22827    0    dmurk    144    

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

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

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

16.04.2019    19174    0    m-rv    17    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    38427    0    YPermitin    30    

Выполнение внешней обработки в фоновом задании

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    26596    0    Eret1k    23    

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    32064    0    ellavs    126    

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

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    28824    0    m-rv    21    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    25278    0    ellavs    88    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    28878    0    YPermitin    53    

Ошибки при работе с хранилищем конфигурации и способы их решения

Практика программирования v8 Бесплатно (free)

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

01.03.2019    33720    0    Смешной 1С    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    26862    0    itriot11    34    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Практика программирования Vanessa Automation v8 Россия Бесплатно (free)

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    20120    0    Vladimir Litvinenko    27    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    34616    0    ids79    9    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    73424    0    Serginio    108    

EnterpriseData – часть 2. Процесс выгрузки данных

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

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

26.12.2018    24794    0    ids79    31    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    37853    0    ids79    72    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    32417    0    ids79    40    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    34258    0    ids79    40    

Программное заполнение пользовательских параметров и отборов СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.11.2018    41357    0    Unk92    21    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    27532    0    grumagargler    26