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

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

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

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

Mexxe

Доброго времени, Уважаемые ПРОФИ!
Можете направить в нужном направлении, Новичка в программировании 1С?!))
Как лучше построить структуру Заполнение реквизита с Требование Накладная в Реализация Товаров и Услуг?
В Требовании в ТабЧасти, будут заполняться SN Комплектующих и нужно их заполнить (скопировать) кнопкой в Реализация Товаров и Услуг (заполнять не в ТЧ, а отдельные поля на вкладке)?
Может кто примером кода поделиться, какова структура?
За ранее благодарю!   

LexaK

Mexxe, в 1С есть такое понятие как "Ввод на основании"
в конфигураторе задаете связь какой документ на основании какого может вводится.
и в создаваемом документе, в модуле, в обработчике

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

заполняете создаваемый документ, как вам надо, из исходных данных - ДанныеЗаполнения

при этом автоматически в списке документов появится кнопка: Создать на основании или в ней добавится новый вводимый документ (если до этого не было)
если помогло нажмите: Спасибо!

Mexxe

LexaK, благодарю
На основании Документа, это в моей практике было, но в том то и дело, что Реализация может создаваться - без проведения, когда еще нет Требования - это производственные нюансы!
Вот и решили сделать заполнить по кнопки!
Как то так


LexaK

Mexxe, можно и так,
еще например в Реализацию добавить реквизит: Требование (ссылка на документ) и рядом копку ЗаполнитьСН
Пользователь в поле реквизита выбирает Тредование (елси еще не было) и нажимает кнопку ЗаполнитьСН
при хтом у вас будет сохраняться и связь Требование - Реализация
(что можно будет смотреть в форме Связанные документы)
если помогло нажмите: Спасибо!

Mexxe

LexaK, А это хорошее направление "еще например в Реализацию добавить реквизит: Требование (ссылка на документ)", в понедельник попробую, о результате отпишусь

Mexxe

Цитата: LexaK от 08 дек 2023, 12:45Mexxe, можно и так,
еще например в Реализацию добавить реквизит: Требование (ссылка на документ) и рядом копку ЗаполнитьСН
Пользователь в поле реквизита выбирает Тредование (елси еще не было) и нажимает кнопку ЗаполнитьСН
при хтом у вас будет сохраняться и связь Требование - Реализация
(что можно будет смотреть в форме Связанные документы)

LexaK, добавил реквизит, а вот теперь при действии кнопки (обращении к ТЧ выдает ошибку)((
Как обратиться к данному документу (Требованию Накладной) разными способами экспериментировал, пока никак?!
Создал, вроде все верно)

 

LexaK

Mexxe, код кнопки выкладывайте,
(она должна вызывать серверную процедуру ЗаПолнитьПоТребованиюНаСервере() )
если помогло нажмите: Спасибо!

Mexxe

Цитата: LexaK от 11 дек 2023, 10:36Mexxe, код кнопки выкладывайте,
(она должна вызывать серверную процедуру ЗаПолнитьПоТребованиюНаСервере() )

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

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

Вот такой код, понимаю что не верен, а что именно не верно, пока не могу понять

antoneus

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

Объект.Товары.Загрузить(Запрос.Выполнить().Выгрузить());

Mexxe

Цитата: antoneus от 11 дек 2023, 11:57Объект.Товары.Загрузить(Запрос.Выполнить().Выгрузить());

Ругается на эту строку
"{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(3584,1)}: Переменная не определена (Объект)
<<?>>Объект.Товары.Загрузить(Запрос.Выполнить().Выгрузить()); (Проверка: Толстый клиент (обычное приложение))"
 

Теги:

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

Рейтинг@Mail.ru

Поиск