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

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

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Другие решения на платформе "1С:Предприятие 8"]

УТ 10.3 заполнение табличной части

Natalia111
читатель
офлайн
Дата регистрации: 04.07.2011
Сообщений: 52
Пост №1
 
13.03.2012 17:00

"Добрый день, стоит такая задача: для документа Реализация Товаров и Услугз в табличной части есть кнопка Изменить, при нажатии которой открывается форма подбора элементов, по которым может быть заполнена таб часть документа реализация. Так вот, при открытии формы подбора, сначала выбирается действие, например, "Добавить из документа" затем из списка документов выбирается тип документа, например, "Заказ покупателя" затем открывается ещё одно окно выбора со списком всех Заказов покупателей, а задача отфильтровать заказы только по тому контрагенту, который указан в док-те "Реализация". Исходя из кода, за вывод списка самих документов отвечает какая-то системная обработка "Стандартная обработка". Её код можно как-то просмотреть, или нужно будет дописывать выбор объектов самой? Или я всё делаю неправильно и решать эту задачу нужно по-другому?<br> <br><br><pre> Процедура ПолеВводаВариантаЗначенияНачалоВыбора(Элемент, СтандартнаяОбработка)<br><br> // Заполним список возможных типов для выбора<br> СписокВидов = Новый СписокЗначений;<br> МассивТипов = ЭлементыФормы.ПолеВводаВариантаЗачения.ОграничениеТипа.Типы();<br> РазмерСписка = МассивТипов.Количество();<br> Если РазмерСписка = 1 Тогда<br><br>       Если МассивТипов[0] = Тип("СправочникСсылка.ТипыЦенНоменклатурыКонтрагентов")<br>       И Не ЗначениеЗаполнено(ДокументОбъект.Контрагент) Тогда<br>            // Не понятно что выбирать, это ошибка.<br>            Предупреждение("Для установки цен поставщика необходимо в документе выбрать тип цен контрагента!"); <br>            СтандартнаяОбработка = Ложь;<br>            Возврат;<br>       КонецЕсли;<br><br> ИначеЕсли РазмерСписка > 1 Тогда<br><br>       // В случае одного элемента выбирать нечего, нужное значение мы установили при выборе действия,<br>       // поэтому этот случай здесь не обрабатывается.<br>       <br>       Для каждого ЭлементМассива Из МассивТипов Цикл<br><br>            Если Документы.ТипВсеСсылки().СодержитТип(ЭлементМассива)<br>             ИЛИ Справочники.ТипВсеСсылки().СодержитТип(ЭлементМассива) Тогда<br>             ПустоеЗначение = Новый(ЭлементМассива);<br>             ОбъектОписанияМетаданного = ПустоеЗначение.Метаданные();<br>             СписокВидов.Добавить(ЭлементМассива, ОбъектОписанияМетаданного.Представление());<br>            КонецЕсли;<br>       КонецЦикла;<br><br>       СписокВидов.СортироватьПоПредставлению();<br><br>       НачальноеЗначение = Неопределено;<br>       Если ТипЗнч(ВариантЗначения) = Тип("СписокЗначений") Тогда<br>            НачальноеЗначение = ЭлементыФормы.ПолеВводаВариантаЗачения.Значение.ТипЗначения.Типы()[0];<br>       КонецЕсли;<br>       НачальноеЗначениеСписка = СписокВидов.НайтиПоЗначению(НачальноеЗначение);<br>       ВыбранныйЭлемент = ВыбратьИзСписка(СписокВидов, Элемент, НачальноеЗначениеСписка);<br><br>       Если ВыбранныйЭлемент = Неопределено Тогда // отказ от выбора<br>            СтандартнаяОбработка = Ложь;<br>            Возврат;<br>       КонецЕсли;<br><br>       Если Документы.ТипВсеСсылки().СодержитТип(ВыбранныйЭлемент.Значение) Тогда<br>            ЭлементыФормы.ПолеВводаВариантаЗачения.Значение = Новый СписокЗначений;<br>            МассивТипов = Новый Массив;<br>            МассивТипов.Добавить(ВыбранныйЭлемент.Значение);<br>            ЭлементыФормы.ПолеВводаВариантаЗачения.Значение.ТипЗначения = Новый ОписаниеТипов(МассивТипов);<br>       Иначе<br>            Элемент.Значение = ОбщегоНазначения.ПустоеЗначениеТипа(ВыбранныйЭлемент.Значение);<br>       КонецЕсли;<br><br> Иначе // размер списка = 0<br><br>       // Не понятно что выбирать, это ошибка.<br>       Предупреждение("Не заданы возможные типы значения!"); <br>       СтандартнаяОбработка = Ложь;<br>       Возврат;<br><br> КонецЕсли; <br><br>КонецПроцедуры // ПолеВводаВариантаЗаченияНачалоВыбора()<br></pre>"

Alizar
читатель
офлайн
Дата регистрации: 23.08.2007
Сообщений: 311
Пост №2
 
13.03.2012 17:25

СтандартнаяОбработка - это параметр Вашей процедуры. Он отвечает за поведение данного элемента формы при наступлении некоторого события. В Вашем случае: элемент формы - это поле ввода, а событие - начало выбора.<br>Если СтандартнаяОбработка = Истина, то элемент ведет себя так, как должен вести себя по умлочанию. Плюс выполняется Ваш код.<br>Если СтандартнаяОбработка = Ложь, то выполняется только Ваш код.

Natalia111
читатель
офлайн
Дата регистрации: 04.07.2011
Сообщений: 52
Пост №3
 
13.03.2012 17:30

в таком случае, я не могу понять, где лежит тот код, который отвечает за вывод списка значений, где я подбираю уже конкретные документы, это и есть стандартное поведение элемента Поле ввода?

Alizar
читатель
офлайн
Дата регистрации: 23.08.2007
Сообщений: 311
Пост №4
 
13.03.2012 17:32

Торговли, к сожалению, под рукой нет, но Вы уверены, что Вы привели тот код, который нужно?

Natalia111
читатель
офлайн
Дата регистрации: 04.07.2011
Сообщений: 52
Пост №5
 
13.03.2012 17:43

думаю, да. к этому полю ввода привязаны только две процедуры ( начало выбора и очистка) . я смотрю код процедуры "очистка" и откуда берётся половина происходящего там понять не могу (( даже не знаю, где ещё смотреть и что именно искать(

Natalia111
читатель
офлайн
Дата регистрации: 04.07.2011
Сообщений: 52
Пост №6
 
13.03.2012 17:44

"начало выбора" я имела ввиду

Natalia111
читатель
офлайн
Дата регистрации: 04.07.2011
Сообщений: 52
Пост №7
 
13.03.2012 19:15

"Разобралась, как это работает, а может быть можно как-нибудь сделать, чтобы, когда я присваиваю полю ввода тип значения (<br><pre>ЭлементыФормы.ПолеВводаВариантаЗачения.Значение.ТипЗначения = Новый ОписаниеТипов(МассивТипов); </pre><br>)<br> <br>после этого установить на сами значения фильтр по контрагенту, или это уже бред и фильтр прийдётся устанавливать в форме списка для каждого документа из которого я хотела бы копировать табличную часть ((("

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

Читают тему:

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