Имя: Пароль:
1C
1С v8
Как заполнить документ кнопкой "Заполнить" данными из другого документа?
, ,
0 gmo666
 
05.01.20
06:51
Как заполнить документ кнопкой "Заполнить" данными из другого документа?

Создал кнопку "Заполнить"(рядом с кнопкой "Записать") в документе "ПродажаОборудования". Все данные (не только табличная часть) в этом документе должны заполняться данными из документа "ПодтверждениеОплаты".
Как это сделать? И где? В модуле документа или в модуле формы?
1 runoff_runoff
 
05.01.20
07:12
как называется конфигурация?
2 Chameleon1980
 
05.01.20
07:50
если конфа тимовая - не нужно никаких кнопок добалять. погугли внешние (подключаемые) обработки заполнения табличных частей.
3 gmo666
 
05.01.20
09:24
(1) Учебная платформа. Решаю тестовое задание.
4 gmo666
 
05.01.20
09:26
(2) (2) (2) (3) Пытаюсь сделать на подобии "ввода на основании", но не получается.
5 Chameleon1980
 
05.01.20
10:02
выбор документа уже организовал из которого заполнять предполагаешь?
6 Мимохожий Однако
 
05.01.20
10:12
(0) В модуле заполняемого документа
7 gmo666
 
05.01.20
10:35
(6) (6) Дело в том, что при назначении события на кнопку "Заполнить" выводится процедура в модуль формы.
А в нём я прописал код, который я взял с Обработки заполнения сформированного "является основанием":

&НаСервере
Процедура Заполнить(ДанныеЗаполнения)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументОбъект.БанковскаяВыписка") Тогда
        // Заполнение шапки
        Клиент = ДанныеЗаполнения.Клиент;
        Склад = ДанныеЗаполнения.Склад;
        Для Каждого ТекСтрокаЗаказы Из ДанныеЗаполнения.Заказы Цикл
            НоваяСтрока = ТекСтрокаЗаказы.Добавить();
            НоваяСтрока.Количество = ТекСтрокаЗаказы.Количество;
            НоваяСтрока.Сумма = ТекСтрокаЗаказы.Сумма;
            НоваяСтрока.Товар = ТекСтрокаЗаказы.Товар;
            НоваяСтрока.Цена = ТекСтрокаЗаказы.Цена;
        КонецЦикла;
    КонецЕсли;

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


Я не знаю, где что писать(
Запутался.
В модуле объекта в документе или в модуле формы?

Есть знающие?
8 gmo666
 
05.01.20
10:37
(6) Реквизиты и табличные поля идентичны
9 catena
 
05.01.20
11:16
(7)В общем случае, в модуле формы нужно писать все, что напрямую связано с общением с пользователем, самой формой, интерактивным вводом. В модуле объекта нужно писать все, что связано с объектом, независимо от того, откуда к объекту обращаются: из формы, из групповой обработки, из фонового задания и т.п.

В частном случае пишут там, где работает.
10 gmo666
 
05.01.20
11:22
(9)

Это событие кнопки "Заполнить":
сформировалось автоматически.

&НаКлиенте
Процедура Заполнить(Команда)
    
КонецПроцедуры

Как можно вписать туда такую обработку, например как в ОбработкеЗаполнения?

Вот процедура в модуле объекта:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.БанковскаяВыписка") Тогда
        // Заполнение шапки
        Клиент = ДанныеЗаполнения.Клиент;
        Склад = ДанныеЗаполнения.Склад;
        Для Каждого ТекСтрокаЗаказы Из ДанныеЗаполнения.Заказы Цикл
            НоваяСтрока = Заказы.Добавить();
            НоваяСтрока.Количество = ТекСтрокаЗаказы.Количество;
            НоваяСтрока.Сумма = ТекСтрокаЗаказы.Сумма;
            НоваяСтрока.Товар = ТекСтрокаЗаказы.Товар;
            НоваяСтрока.Цена = ТекСтрокаЗаказы.Цена;
        КонецЦикла;
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
11 lEvGl
 
гуру
05.01.20
11:28
а чем обработка заполнения не устраивает? нормальный типовой механизм
код из ()10 можно заменить на

ЗаполнитьЗначенияСвойств(Приемник, Источник);
Приемник.Заказы.Загрузить(Источник.Заказы.Выгрузить);
12 gmo666
 
05.01.20
11:29
При проверке кода программа ругается на строке
НоваяСтрока = Заказы.Добавить();

Что переменная Заказы не определена.
Что делать?
13 gmo666
 
05.01.20
11:34
(11) Благодарю за ответ.
А можно по подробнее?
Уже неделю бьюсь(

Саму процедуру, и что где вставить?

Был бы очень признателен.
14 gmo666
 
05.01.20
11:37
(11) Там по заданию надо через кнопку "Заполнить" это осуществить.

Кнопку "Заполнить" разместил в командной панели.
&НаКлиенте
Процедура Заполнить(Команда)
    
КонецПроцедуры
15 gmo666
 
05.01.20
11:40
(11)
Вот формулировка в тестовом задании:
В документе отгрузки должна быть кнопка «Заполнить». При нажатии на эту кнопку
табличная часть документа должна заполняться по методу FIFO товарами из заказов
покупателей, которые еще не были отгружены, но уже были оплачены; при этом в
табличную часть должны попадать только те товары из заказов, для которых достаточно
товаров на складе для отгрузки.
16 gmo666
 
05.01.20
12:19
Есть ли возможность заполнить данные одного документа данными из другого документа, без использования внешней обработки?

Как это можно сделать?

Кто знает?
17 gmo666
 
05.01.20
12:20
Используя кнопку "Заполнить".
Читайте выше.
18 lEvGl
 
гуру
05.01.20
12:31
если смотреть на задачу вцелом, то тут будет немного по-другому:
необходимо взять остатки из регистра ЗаказыПокукпателей с фильтром по контрагенту, который указан в ДокументеОтгрузки, остатки с необходимыми измерениями, предположительно, они будут называться ЗаказПокупателя, Номенклатура, Количество - это будут неотгруженные заказы, потом эти данные связать внутренним соединением с регистром оплаты (связь по заказу) и остаточным складским регистром, предположительно ТоварыНасКладах (связь по номенклатуре). С ФИФО задача, думаю, сформулирована некорректно, предположительно, необходимо заполнить документ заказами с сортировкой по дате размещения заказа и остатки на складе на каждый следующий заказ смотреть с учетом выполнения предыдущего заказа. Очень много предположительного, но смысл задачи где то такой. ВводНаОсновании тут не нужен, это делается запросом. Чтобы написать запрос, необходимо знать организационную структуру базы, где что хранится, в (1) спросили это
19 gmo666
 
05.01.20
14:16
Дайте актуальные ссылки на материалы?
Где можно почитать, какие видео посмотреть?
Смотрю Белоусова и Чистова.
Но пока о том, что мне нужно не нашел.
Я так понимаю, это всё нужно искать в задачах по спецу по платформе.
Кто-то наверняка в начале своего "извилистого" пути сталкивался с такого рода задачей)
Подскажите, где найти такой материал.
Дайте точные ссылки
20 lEvGl
 
гуру
05.01.20
15:16
задача "типовая", возможно встречается в задачах по спецу
ссылки на задачу?