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

Заполнение реквизита с Док1 в Док2

Автор Mexxe, 08 дек 2023, 10:39

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

LexaK

Mexxe, все эти варианты заполнения делаются в 2-3 команды
1.Запрос....
2.НужнаяТабличнаяЧасть.Загрузить(Запрос.выполнить().выгрузить());

в запросе проверяются количества (>0) и задаются нужные имена колонок (совпадающие с ТЧ)
если помогло нажмите: Спасибо!

Mexxe

LexaK, Дааа, это у Вас Профи, все так просто делается, а новичку бы на пальцах (пример кода) в идеале если можно))
Запрос как понимаю верен
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТребованиеНакладная.Материалы.(
                   |        СторонаПОИ КАК СторонаПОИ,
                   |        ОтражатьВРеализацииSN КАК ОтражатьВРеализацииSN,
                   |        SNМодуляУзла КАК SNМодуляУзла,
                   |        Номенклатура КАК Номенклатура
                   |    ) КАК Материалы
                   |ИЗ
                   |    Документ.ТребованиеНакладная КАК ТребованиеНакладная"; 
Запрос.УстановитьПараметр("Ссылка", ДокументТребованиеНакладная);
Но сам механизм (действие) кнопки под большим вопросом((

Еще вопрос:
Можно как то реализовать заполнение ТребованиеНакладной - так же по кнопки из структуры подчиненности, и как быть если иногда бывает и два требования в структуре?

Mexxe

Цитата: LexaK от 13 дек 2023, 09:59Mexxe, все эти варианты заполнения делаются в 2-3 команды
1.Запрос....
2.НужнаяТабличнаяЧасть.Загрузить(Запрос.выполнить().выгрузить());

в запросе проверяются количества (>0) и задаются нужные имена колонок (совпадающие с ТЧ)
Да, и количество мало интересует, больше интересует "Истина" в строке (Ячейка "ОтражатьВРеализацииSN") в Требовании, возможно по этому параметру отобрать?

LexaK

1.какие колонки в тч.SNКомплектующих ?

Цитироватькак быть если иногда бывает и два требования в структуре?
2.в структуре чего? какого документа? по каким реквизитам связь?
если помогло нажмите: Спасибо!

Mexxe

Цитата: LexaK от 13 дек 2023, 11:121.какие колонки в тч.SNКомплектующих ?
Они должны обязательно совпадать с колонками в Требовании?

КолонкиSNКомплектующих.png

Цитировать2.в структуре чего? какого документа? по каким реквизитам связь?
В структуре подчиненности, связь по "Заказу Покупателя"
Структура Подчиненности.png

LexaK

Mexxe, "Они должны обязательно совпадать с колонками в Требовании?"
-нет, можно в запросе задавать нужные имена колонкам/полям но при этом обязательно проверять совпадение Типов данных в колонках
(то что вы прислали на картине ни имена реквизитов ТЧ, даа...)

примерный код для заполнения (хотя вряд ли поможет)
Запрос = Новый Запрос;
    Запрос.Текст = "
|ВЫБРАТЬ
|//проуерить и указать нужные имена для ТЧ
|    ТребованиеНакладная.СторонаПОИ КАК СторонаПОИ,
|    ТребованиеНакладная.SNМодуляУзла КАК SNМодуляУзла,
|    ТребованиеНакладная.Номенклатура КАК Номенклатура
|ИЗ
|    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная
|Где
| ТребованиеНакладная.Ссылка = &ТребованиеСсылка
|и    ТребованиеНакладная.ОтражатьВРеализацииSN = Истина //то что надо вывести в РТУ
|
|"; 
Запрос.УстановитьПараметр("ТребованиеСсылка", ДокументТребованиеНакладная);
SNКомплектующих.Загрузить(Запрос.Выполнить().Выгрузить());
если помогло нажмите: Спасибо!

Mexxe

Цитата: LexaK от 13 дек 2023, 12:11(то что вы прислали на картине ни имена реквизитов ТЧ, даа...)
Типы совпадают)

Вот Реквизиты, это?

Рквизиты.png
 

Mexxe

Цитата: LexaK от 13 дек 2023, 12:11примерный код для заполнения (хотя вряд ли поможет)
Код ошибок не выдает при проверки, но я так понимаю этот Запрос, только вытащил данные из требования, должен еще быть код, для заполнения ТЧ в РТУ, пока не доходит как его реализовать)
Или я ошибаюсь?

Mexxe

Цитата: Mexxe от 13 дек 2023, 12:53
Цитата: LexaK от 13 дек 2023, 12:11примерный код для заполнения (хотя вряд ли поможет)
Код ошибок не выдает при проверки, но я так понимаю этот Запрос, только вытащил данные из требования, должен еще быть код, для заполнения ТЧ в РТУ, пока не доходит как его реализовать)
Или я ошибаюсь?

Ребят, есть еще у кого какие предположения, почему не функционирует кнопка, может были похожие темы на данном форуме, поделитесь пожалуйста, поиском и чего не нашел

Mexxe

Ребят, в общем пошел немного другим путем, записываются реквизиты в регистр сведений, решил попробовать их оттуда заполнять в РТУ, создал функцию
Функция ЗаПолнитьПоТребованиюНаСервере(ЗаказПокупателя) //Экспорт   

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
                   | СписанныеТовары.ВидыКомплектующих КАК ВидыКомплектующих,
                   | СписанныеТовары.SNМодуляУзла КАК SNМодуляУзла,
                   | СписанныеТовары.ОтражатьВРеализацииSN КАК ОтражатьВРеализацииSN
                   |ИЗ
                   | РегистрСведений.СписанныеТовары КАК СписанныеТовары
                   |ГДЕ
                   | СписанныеТовары.ОтражатьВРеализацииSN = ИСТИНА
                   | И СписанныеТовары.Регистратор.ЗаказПокупателя = &ЗаказПокупателя"; 
Запрос.УстановитьПараметр("ЗаказПокупателя", ЗаказПокупателя);
Выборка = ЗАПРОС.Выполнить().Выбрать();


ЕСЛИ Выборка.Следующий() ТОГДА
Возврат Выборка;
Иначе
Возврат "";
КонецЕсли;
КонецФункции 

И процедуру (Кнопки по которой должна заполняться ТЧ)
Процедура ЗаполнениеПоТребованиюНажатие(Элемент)
ЗаказПокупателя = Ссылка.Сделка;
Комплектующие = ЗаПолнитьПоТребованиюНаСервере(ЗаказПокупателя);
ТабЧасть=Ссылка.SNКомплектующих; 
ДЛЯ КАЖДОГО Стр ИЗ Комплектующие ЦИКЛ 
ТабЧасть.ВидыКомплектующих=СТР.ВидыКомплектующих;
табчасть.SNМодуляУзла=СТР.SNМодуляУзла;
КОНЕЦЦИКЛА;
КонецПроцедуры

По итогу (при нажатии) выдает следующюю ошибку

ЦитироватьИтератор для значения не определен
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(7483)}:   ДЛЯ КАЖДОГО Стр ИЗ Комплектующие ЦИКЛ

Профи 1С-ки подскажите что не так делаю, в каком направлении идти?

Теги:

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

Рейтинг@Mail.ru

Поиск