Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мар 2024, 09:28

Автоматическое заполнение табличной части документа из табличной части другого

Автор Will, 15 авг 2012, 21:02

0 Пользователей и 1 гость просматривают эту тему.

Will

1С 8.2
Здравствуйте.
Документ Приход: Табличная часть: Услуги. Реквизиты таблицы: Имя, Кол.
Документ Расход: Табличная Часть: Услуги. Реквизиты таблицы: ВыбДокумент (Тип Документ.Приход), Имя, Кол.
Нужно, чтобы при заполнении реквизита ВыбДокумент в табличной части Услуги документа Расход,
реквизиты Имя и Кол заполнялись автоматически в соответствии с выбранным документом Приход из его табличной части.
Пыталась составить запрос, но что-то не работает...

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
                      |Услуги.Имя КАК Имя,
                      |Услуги.Код КАК Код
                      |ИЗ
                      |Документы.Приход.Услуги
                      |ГДЕ
                      |Документы.Приход = &Документ";

Услуги.Загрузить(Запрос.Выполнить().Выгрузить());


Каким способом можно произвести заполнение табличной части одного документа из табличной части другого документа?


Slin

Вы сами проектировали эту базу? Просто странные поля: имя и код.
Для начала, где параметр запроса "Документ"?
skype: slin-dev

Slin

можно еще вот подобным способом, но нужно, чтобы названия и тип колонок совпадали
массив = Объект.ДокументПрихода.СписокТоваров.Выгрузить();
Объект.СписокТоваров.Загрузить(массив);

skype: slin-dev

Will

Спасибо.
Да, эту базу сама проектировала. Просто для примера. Вообще код для документов конфигурации УТ 11.

Will

Цитата: Slin от 16 авг 2012, 08:26
можно еще вот подобным способом, но нужно, чтобы названия и тип колонок совпадали
массив = Объект.ДокументПрихода.СписокТоваров.Выгрузить();
Объект.СписокТоваров.Загрузить(массив);



названия и тип колонок совпадают, только не совсем понятно что куда подставить.
Массив = Документы.Приход.Услуги.Выгрузить();
Объект.Услуги.Загрузить(Массив);


"Элемент Документы не определен"

Slin

Формат первой строки таков:Массив = <Объект текущего документа>.<Имя реквизита, содержащего исходный приходный документ>.<Имя табличной части приходного документа>.Выгрузить();

Вот модуль формы документа расхода в моей микроконфигурации:&НаКлиенте
Процедура Заполнить(Команда)
Если Объект.ДокументПрихода.Пустая() Тогда
Возврат;
КонецЕсли;
ЗаполнитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()

массив = Объект.ДокументПрихода.СписокТоваров.Выгрузить();

Объект.СписокТоваров.Загрузить(массив);

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


Пояснения:
1. У документа расход создан реквизит "ДокументПрихода" типа "ДокументСсылка.Приход".
2. На форме имеется кнопка, которая вызывает команду "Заполнить", исполняющуюся на стороне клиента.
3. Эта команда вызывает процедуру "ЗаполнитьНаСервере", исполняющуюся на стороне сервера.
4. По процедуре "ЗаполнитьНаСервере":
- Объект - это основной реквизит формы, содержащий собственно значение текущего документа расхода.
- ДокументПриход - реквизит документа расхода, содержащий ссылку на документ прихода
- СписокТоваров - табличная часть документа прихода

Итого:
Ваши строки должны быть примерно такимиМассив = Объект.Приход.Услуги.Выгрузить();
Объект.Услуги.Загрузить(Массив);

при условии, что "Приход" - это ссылка (реквизит документа расхода) на документ прихода.

Возможны варианты.
skype: slin-dev

Will


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск