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

Модуль документа

Автор gliokker, 12 авг 2013, 16:27

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

gliokker

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

Вот кусок модуля программа ругается на то что АдресОтправления1 не обнаруженно,это реквизит табл части документа уатЗаказГрузоотправителя .Подскажит что неправельно делаю?

MuI_I_Ika

Судя по коду у вас АдресОтправления1 это реквизит документа уатЗаказГрузоотправителя.

gliokker

Цитата: MuI_I_Ika от 12 авг 2013, 16:37
Судя по коду у вас АдресОтправления1 это реквизит документа уатЗаказГрузоотправителя.
Ну вообщето да,я незнаю как записпть чтоб это был реквизит табл части
пишу так тоже не работает
ДанныеЗаполнения.СтрТаблЧасти.АдресНазначения1

MuI_I_Ika

Вот у вас ТекСтрока - это строка табличной части. А то что вы пишете никак не будет строкой. Программе нужно указать какую строку вы хотите получить. Их же в табличной части много, а может и не быть совсем.

gliokker

Цитата: MuI_I_Ika от 12 авг 2013, 17:23
Вот у вас ТекСтрока - это строка табличной части. А то что вы пишете никак не будет строкой. Программе нужно указать какую строку вы хотите получить. Их же в табличной части много, а может и не быть совсем.
А как указать

MuI_I_Ika

А какая строка нужна? И какой табличной части?

Андрей Федотов

Вариантов несколько.

Или Таблица[ИндексСтроки].АдресНазначения1
Или Для каждого СтрокаТаблицы Из Таблица Цикл СтрокаТаблицы.АдресНазначения1 ...
Или ТекущаяСтрока = ЭлементыФормы.Таблица.ТекущаяСтрока; ТекущаяСтрока.АдресНазначения1

markgenuine

ХЕх..тоже уат мучаете=))))
я на днях обмен прикручивал=)

gliokker

Цитата: markgenuine от 12 авг 2013, 22:49
ХЕх..тоже уат мучаете=))))
я на днях обмен прикручивал=)
Да вот тоже щас скоро буду прикручивать,табель
Добавлено: 13 авг 2013, 09:55


Возвращаюсь к вчерашнему вопросу.Вот что у меня получилось
Процедура ОбработкаЗаполнения(Основание)

Если ТипЗнч(Основание) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
   
      ДокументОснование = Основание.Ссылка;
      ДатаИВремяВыполнения = Основание.КрайнийСрокОтработки;
      Дата =  Основание.Дата;

            Для каждого СтрТаблЧасти ИЗ Основание.Маршруты Цикл
            Если   ЗначениеЗаполнено(СтрТаблЧасти.АдресНазначения1) тогда
                  
            НоваяСтрока= Заказы.Добавить();   
            НоваяСтрока.Пункт = СтрТаблЧасти.АдресНазначения1;
                КонецЕсли;
            КонецЦикла;
            КонецЕсли;
КонецПроцедуры
НО.Почему при нажатии на кнопу пункт заполняется табличная часть а не сразу.Кнопка пункт это реквизит документа.В процедуре Добавить кнопку нету,такого.
Процедура КоманднаяПанельПоЗаказамДобавитьПункт(Кнопка)
   
   Если пДерево = 1 тогда
      НовСтрокаДерево = ЗаказыДерево.Строки.Добавить();
      НовСтрокаДерево.ПунктЗаказНоменклатура = "";
      ЭлементыФормы.ЗаказыДерево.ТекущаяСтрока  = НовСтрокаДерево;
      ЭлементыФормы.ЗаказыДерево.ТекущаяКолонка = ЭлементыФормы.ЗаказыДерево.Колонки.ПунктЗаказНоменклатура;
      ЭлементыФормы.ЗаказыДерево.ИзменитьСтроку();
   Иначе
      НовСтрока = Заказы.Добавить();
      НовСтрока.Пункт = "";
      ПараметрыМаршрута.Добавить();
      ЭлементыФормы.ЗаказыСписок.ТекущаяСтрока = НовСтрока;
      ЭлементыФормы.ЗаказыДерево.ТекущаяКолонка = ЭлементыФормы.ЗаказыСписок.Колонки.Пункт;
      ЭлементыФормы.ЗаказыСписок.ИзменитьСтроку();
   КонецЕсли;
   
КонецПроцедуры


Теги:

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

Рейтинг@Mail.ru

Поиск