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

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

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

В наличии

Перенос данных из одной табличной части в другую

Категория:

Описание

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

Немного покопавшись и напоровшись на «подводные камни», было придумано решение проблемы.

Необходимо доработать документ «Корректировка записей регистров» так чтобы там появилось кнопочка вызывающая следующую процедурку:

Процедура ДействияФормыЗаполнить(Кнопка)
    Если ЭтоНовый() Или Модифицированность() Тогда
        Ответ = Вопрос("Перед копированием документ нужно записать. Записать?", РежимДиалогаВопрос.ДаНет, 60);
    Если Ответ <> КодВозвратаДиалога.Да Тогда
        Возврат;
        Иначе
            Записать(РежимЗаписиДокумента.Проведение);
    КонецЕсли;
    КонецЕсли;
   
    Меню = Новый СписокЗначений();
    Для Каждого СтрокаТаблицыРегистров Из ТаблицаРегистровНакопления Цикл
        Если ЭлементыФормы.ПанельРегистровНакопления.ТекущаяСтраница.Имя = СтрокаТаблицыРегистров.Имя Тогда
            Продолжить;
        КонецЕсли;
        Меню.Добавить(Метаданные.РегистрыНакопления[СтрокаТаблицыРегистров.Имя], "РН " + СтрокаТаблицыРегистров.Представление);
    КонецЦикла;
   
    Для Каждого СтрокаТаблицыРегистров Из ТаблицаРегистровСведений Цикл
        Если ЭлементыФормы.ПанельРегистровСведений.ТекущаяСтраница.Имя = СтрокаТаблицыРегистров.Имя Тогда
            Продолжить;
        КонецЕсли;
        Меню.Добавить(Метаданные.РегистрыСведений[СтрокаТаблицыРегистров.Имя], "РС " + СтрокаТаблицыРегистров.Представление);
    КонецЦикла;
   
    Для Каждого СтрокаТаблицыРегистров Из ТаблицаРегистровБухгалтерии Цикл
        Если ЭлементыФормы.ПанельРегистровБухгалтерии.ТекущаяСтраница.Имя = СтрокаТаблицыРегистров.Имя Тогда
            Продолжить;
        КонецЕсли;
        Меню.Добавить(Метаданные.РегистрыБухгалтерии[СтрокаТаблицыРегистров.Имя], "РБ" + СтрокаТаблицыРегистров.Представление);
    КонецЦикла;
   
    Источник = Меню.ВыбратьЭлемент("Выберите источник");
    Если Источник = Неопределено Тогда
        Возврат;
    КонецЕсли;
   
    Для Каждого Набор Из Движения Цикл
        Если Набор.Метаданные() <> Источник.Значение Тогда
            Продолжить;
        КонецЕсли;
       
        Набор.Прочитать();
        Если Набор.Количество() = 0 Тогда
            Продолжить;
        КонецЕсли;
   
        Если ЭлементыФормы.ПанельРегистров.ТекущаяСтраница.Имя = "РегистрыНакопления" И ЭлементыФормы.ПанельРегистровНакопления.ТекущаяСтраница.Имя <> "Подсказка" Тогда
            Приемник = Движения.Найти(ЭлементыФормы.ПанельРегистровНакопления.ТекущаяСтраница.Имя);
            ТаблицаПриемника = Приемник.Выгрузить();
            ТаблицаПриемника.Очистить();
            ТаблицаИсточника = Набор.Выгрузить();
                Для Каждого СтрокаТаблицыИсточника Из ТаблицаИсточника Цикл
                    СтрокаТаблицыПриемника = ТаблицаПриемника.Добавить();
                    ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриемника, СтрокаТаблицыИсточника);
                КонецЦикла;
            Приемник.Загрузить(ТаблицаПриемника);
            Приемник.УстановитьАктивность(Истина);
        ИначеЕсли ЭлементыФормы.ПанельРегистров.ТекущаяСтраница.Имя = "РегистрыСведений" И ЭлементыФормы.ПанельРегистровСведений.ТекущаяСтраница.Имя <> "Подсказка" Тогда
            Приемник = Метаданные.РегистрыСведений[ЭлементыФормы.ПанельРегистровСведений.ТекущаяСтраница.Имя];
        ИначеЕсли ЭлементыФормы.ПанельРегистров.ТекущаяСтраница.Имя = "РегистрыБухгалтерии" Тогда
            Приемник = Метаданные.РегистрыБухгалтерии[ЭлементыФормы.ПанельРегистровБухгалтерии.ТекущаяСтраница.Имя];
        Иначе
            Продолжить;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
has been added to your cart:
Оформление заказа