gifts2017

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

Опубликовал Женя * (smok1986) в раздел Обработки - Обработка документов

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артур Аюханов (artbear) 11.05.11 15:43
Скриншот выложи отдельно, а не как маленькую картинку.
Ничего же не видно :(
2. Эстер Коган (e.kogan) 12.05.11 12:26
Не путайте табличную часть с набором движений, пожалуйста.
3. Женя * (smok1986) 25.05.11 09:06
Выложил скрин. Наслаждайтесь))
4. Nur (Nur) 05.03.12 20:19
{Документ.КорректировкаЗаписейРегистров.МодульОбъекта(437,14)}: Переменная не определена (ЭлементыФормы)
Если <<?>>ЭлементыФормы.ПанельРегистровНакопления.ТекущаяСтраница.Имя = СтрокаТаблицыРегистров.Имя Тогда

Вот такую ошибку выдает
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа