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

Поиск в основной форме обработки ссылок на формирование табличной части

Автор Nail2010, 17 дек 2010, 08:38

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

Nail2010

Добрый день!
Вот и настало время и мне задать сложный для меня вопрос.
Управление торговлей 10.2
Обработка - ПодборНоменклатуры, соответственно сылки для таб. частей из этого справочника.
В строке выбора программно определены 2 вида подбора - ПоСправочнику и ПоОстаткамТоваров
При задании выбора (ВНИМАНИЕ!) состав табличной части "ПодборНоменклатуры" меняется, хотя в форме Обработки табличная часть построена из 14(!) колонок, а отображается только :
4 - в случае выбора ПоСправочнику, и
5 - в случае выбора ПоОстаткамТоваров

Мне конкретно нужно добавить в отображаемое табличное поле 2 колонки : ЦЕНА и КОЛИЧЕСТВО
ГДЕ формируется состав колонок для отображения в табличном поле формы Обработки?
И
КАК добавить эти колонки - хоть из справочника, хоть из регистра сведений... УМА НЕ ПРИЛОЖУ. Бьюсь уже вторые сутки, спал всего 4 часа.


Nail2010

Если нужно - выложу фрагменты кода... правда База - 272 метра...

Nail2010

Неужели такой сложный вопрос?? Подскажите плиз, очень нужно!

Nail2010

Хорошо, пишу пока в чем разобрался- за формирование колонок табличной части "ПанельНоменклатурыДляПодбора" отвечает вот эта строчка кода:

Если ПодборПоСправочнику Тогда
      ЭлементыФормы.ПанельНоменклатураДляПодбора.ТекущаяСтраница   = ЭлементыФормы.ПанельНоменклатураДляПодбора.Страницы["ПоСправочнику"];
      ЭтаФорма.ЭлементыФормы.СправочникНоменклатура.ТекущаяКолонка = ЭтаФорма.ЭлементыФормы.СправочникНоменклатура.Колонки.Наименование;

Как найти и изменить Страницы["ПоСправочнику"]; ?? Помогите плиз

Nail2010

Для полноты представления привожу полный текст процедуры:


Процедура ПриИзмененииВидаПодбора(СтруктураЗапроса)

   Перем Команда;

   мИмяРегистраДляПодбораСерий = "";

   ПодборПоСправочнику = ЗначениеНеЗаполнено(СтруктураЗапроса);
   
   СтруктураИсходныхПараметров.Свойство("Команда", Команда);

   Если мИспользоватьХарактеристики Тогда
      Если Команда = "ПодборВТабличнуюЧастьУслуги"
       ИЛИ Команда = "ПодборВТабличнуюЧастьВозвратнаяТара" Тогда
         Если ЭлементыФормы.ЗапрашиватьХарактеристику.Доступность Тогда
            СохранитьЗначение("ЗапрашиватьХарактеристикуПриПодборе", ЗапрашиватьХарактеристику);
         КонецЕсли;

         ЭлементыФормы.ЗапрашиватьХарактеристику.Доступность = Ложь;
         ЗапрашиватьХарактеристику                           = Ложь;
      Иначе
         ЭлементыФормы.ЗапрашиватьХарактеристику.Доступность = Истина;
         ЗапрашиватьХарактеристику                           = ВосстановитьЗначение("ЗапрашиватьХарактеристикуПриПодборе");
      КонецЕсли;
   КонецЕсли;

   ЭлементыФормы.КоманднаяПанельНоменклатураДляПодбора.Видимость = ПодборПоСправочнику;
   ЭлементыФормы.ИнфНадписьПараметрыПодбора.Видимость = Не ПодборПоСправочнику;
   ЭлементыФормы.КнопкаОбновить.Видимость             = Не ПодборПоСправочнику;
   ЭлементыФормы.НадписьДатаРасчетов.Видимость        = Не (ПодборПоСправочнику или ЗначениеНеЗаполнено(ДатаРасчетов));
   ЭлементыФормы.ДатаРасчетов.Видимость               = Не (ПодборПоСправочнику или ЗначениеНеЗаполнено(ДатаРасчетов));

   Если ПодборПоСправочнику Тогда
      ЭлементыФормы.ПанельНоменклатураДляПодбора.ТекущаяСтраница   = ЭлементыФормы.ПанельНоменклатураДляПодбора.Страницы["ПоСправочнику"];
      ЭтаФорма.ЭлементыФормы.СправочникНоменклатура.ТекущаяКолонка = ЭтаФорма.ЭлементыФормы.СправочникНоменклатура.Колонки.Наименование;
   Иначе
      ЭлементыФормы.ПанельНоменклатураДляПодбора.ТекущаяСтраница   = ЭлементыФормы.ПанельНоменклатураДляПодбора.Страницы["ПоЗапросу"];
      ЭтаФорма.ЭлементыФормы.НоменклатураДляПодбора.ТекущаяКолонка = ЭтаФорма.ЭлементыФормы.НоменклатураДляПодбора.Колонки.Номенклатура;
   КонецЕсли;

   // Заполним таблицу номенклатуры текущего родителя.
   Родитель = ПолучитьТекущегоРодителя();
   Родитель = ?(ЗначениеНеЗаполнено(Родитель), Справочники.Номенклатура.ПустаяСсылка(), Родитель);

   ПерезаполнитьТаблицуНоменклатуры(Родитель, СтруктураЗапроса);
   ОбновитьИнформационнуюНадписьПараметрыПодбора(СтруктураЗапроса);

КонецПроцедуры // ПриИзмененииВидаПодбора()

То, что нужно - в блоке "Если ПодборПоСправочнику Тогда"...

Nail2010

Вроде разобрался - приведенный код абсолютно не причем, все дело в нескольких вкладках основной формы... Это в принципе действенная методика - когда надеятся, кроме как на самого себя, не на кого, срабатывает принцип"бросания в воду" - выплывет, научиться плавать; не выплывет - учи книжки дальше.. :)

Теги:

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

Рейтинг@Mail.ru

Поиск