Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Обработки заполнения табличных частей

Алексей777
читатель
офлайн
Дата регистрации: 24.01.2008
Сообщений: 102
Пост №1
 
03.06.2009 12:39

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

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
03.06.2009 17:11

"0) Нафига делать лишний рекурсивный вызов процедуры? Вполне можно написать<br>"Если НЕ ФормаНастройка.ОткрытьМодально() = Истина Тогда<br>Возврат;<br>КонецЕсли;"<br><br>...далее весь текст процедуры "Сформировать()".<br><br>1) "РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, ДокументРезерва = &Документ) КАК ТоварыВРезервеНаСкладахОстатки" позволит сразу выбрать весь зарезервированный по документу товар. Никаких больше условий задавать не придется.<br><br>2) Что устанавливается в параметр запроса "Документ"? Если ссылка на документ, из которого вызываем обработку, то должно быть<br>"Запрос.УстановитьПараметр("Документ", Объект.Ссылка);".<br><br>3) "СтрокаТЧ = Объект[Материалы].Добавить();" В данном случае переменная "Материалы" содержит в себе имя табличной части, из которой вызывается обработка заполнения ТЧ.<br><br>4) Для чего вызывается форма настройки? Не увидел в коде какого-либо ее использования.<br><br>5) Куда сбросить пример?"

Алексей777
читатель
офлайн
Дата регистрации: 24.01.2008
Сообщений: 102
Пост №3
 
04.06.2009 08:44

kolpermyakov7@yandex.ru<br><br>Спасибо.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №4
 
04.06.2009 09:25

Сбросил самую наипростейшую. Как с ответами на предыдущие 4 вопроса?

Алексей777
читатель
офлайн
Дата регистрации: 24.01.2008
Сообщений: 102
Пост №5
 
04.06.2009 09:43

2) Документ мы выбираем из поля ввода обработки<br>4) На самом деле, это не настройка. Задача состоит в том, чтобы при открытии обработки из табличной части документа, форма обработки появлялась и можно было заполнить строку ввода для передачи параметра.<br><br>

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №6
 
04.06.2009 14:13

А откуду процедура Сформировать знает об Объекте?<br>Надо же передавать параметры в процедуру или следать их глобальными и определить в Инициализировать.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация