Имя: Пароль:
1C
1C 7.7
v7: Поле со списком + разные закладки
0 Масянька
 
16.01.13
14:09
День добрый!

Возникла такая фигня:
Внешняя обработка. Три закладки. На каждой закладке свое поле со списком (разные списки для разных закладок). Инициализация этих полей происходит при открытии формы.
И вот в пользовательском режиме: списки у этих полей разные, как надо. Но элементов списка чего-то много - то, что должно быть, повторяется несколько раз.

Где косяк?

Спасибо.
1 viktor_vv
 
16.01.13
14:11
Наверное заполнение списков при смене закладок сделано, причем без очистки, только добавление.
2 Ёпрст
 
гуру
16.01.13
14:11
косяк видать в ПриВыбореЗакладки
3 viktor_vv
 
16.01.13
14:12
Ну и без кода это чисто потелепатировать.
4 Масянька
 
16.01.13
14:12
А чё надо сделать-то в ПриВыбореЗакладки?
По-новой инициализировать?
5 viktor_vv
 
16.01.13
14:13
(4) Для начала покажи код оттуда, без фанатизма только.
6 Масянька
 
16.01.13
14:13
У меня в ПриВыбореЗакладки - только прописаны слои.
7 Масянька
 
16.01.13
14:15
Процедура ПриОткрытии()

   Закладка = 1;

   // инициализация закладки для ценников - обычные
   
   ТабОбщихЦенников.НоваяКолонка("Пометка"                 ,"Число" ,  4, 0,"Вкл"                    , 6);
   ТабОбщихЦенников.НоваяКолонка("Код"                     ,          ,   ,  ,"Код"                    , 8);
   ТабОбщихЦенников.НоваяКолонка("АртикулПрайс"         ,          ,   ,  ,"Арт."                , 8);
   ТабОбщихЦенников.НоваяКолонка("ЗаголовокЦенника"     ,          ,   ,  ,"Заголовок"            , 18);
   ТабОбщихЦенников.НоваяКолонка("ФирмаПроизводитель"     ,          ,   ,  ,"Фирма"                , 18);
   ТабОбщихЦенников.НоваяКолонка("Модель"                 ,          ,   ,  ,"Модель"                , 15);
   ТабОбщихЦенников.НоваяКолонка("Описание"             ,          ,   ,  ,"Описание"            , );
   ТабОбщихЦенников.НоваяКолонка("СтранаПроизводитель"     ,          ,   ,  ,"Страна"                , 18);
   ТабОбщихЦенников.НоваяКолонка("ПроверкаСебестоимости","Строка",   ,  ,"FormEx_ПланРаскраски");
   ТабОбщихЦенников.НоваяКолонка("Цена"                 ,"Число" , 10, 0,"Цена"                , 15, "Ч 10.2.'");
   ТабОбщихЦенников.НоваяКолонка("Себестоимость"         ,"Число" , 10, 2,"Себестоим."              , 15, "Ч 10.2.'");
   ТабОбщихЦенников.НоваяКолонка("ПроверкаЦены"         ,"Строка",   ,  ,"FormEx_ПланРаскраски");
   ТабОбщихЦенников.НоваяКолонка("ЦенаИзПрайса"         ,"Число" , 10, 0,"Цена (прайс)"        , 15, "Ч 10.2.'");

   ТабОбщихЦенников.ВыводитьПиктограммы("Пометка",2);
   
   // скрыть колонки для раскраски
   ТабОбщихЦенников.ВидимостьКолонки("ПроверкаСебестоимости, ПроверкаЦены", 0);

   СписокСортировкиОбщие.ДобавитьЗначение("БезСортировки",        "Без сортировки");
   СписокСортировкиОбщие.ДобавитьЗначение("Код",                      "По коду");
   СписокСортировкиОбщие.ДобавитьЗначение("Артикул",                  "По артикулу");
   СписокСортировкиОбщие.ДобавитьЗначение("Заголовок",              "По заголовку");
   СписокСортировкиОбщие.ДобавитьЗначение("ФирмаПроизводитель",    "По фирме-производителю");
   СписокСортировкиОбщие.ДобавитьЗначение("Модель",                  "По модели");
   СписокСортировкиОбщие.ДобавитьЗначение("Описание",                  "По описанию");
   
   ТекСортировкаОбщих        = СписокСортировкиОбщие.ТекущаяСтрока();
   ТекСортировкаОбщих        = ?(ТекСортировкаОбщих = 0, 1, ТекСортировкаОбщих);
   ТекНаименованиеСортировкиОбщих    = СписокСортировкиОбщие.ПолучитьЗначение(ТекСортировкаОбщих);
............................
КонецПроцедуры
   
Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
   
   Если НомерЗакладки = 1 Тогда
       Форма.ИспользоватьСлой("ЗаполнитьПоПоступлению, ЗаполнитьЦены, КнопкиТабЧасти, ЦенникиОбычные, КнопкиОбщие");
       Закладка = 1;
   ИначеЕсли НомерЗакладки = 2 Тогда
       Форма.ИспользоватьСлой("ЗаполнитьПоПоступлению, ЗаполнитьЦены, КнопкиТабЧасти, ЦенникиУменьш, КнопкиОбщие");
       Закладка = 2;
   Иначе
       Форма.ИспользоватьСлой("ЗаполнитьПоПоступлению, ЗаполнитьЦеныБумага, КнопкиТабЧасти, ЦенникиБумага, КнопкиОбщие");
       Активизировать("ТабБумЦенников");
       Закладка = 3;
   КонецЕсли;      
   
КонецПроцедуры // ПриВыбореЗакладки()
8 palpetrovich
 
16.01.13
14:15
выложи обработку в файлообменник, так оно быстрее будет
9 Мимохожий Однако
 
16.01.13
14:17
Можно было бы использовать одну форму списка на разных слоях с перезаполнением другим списком при выборе новой закладки.
10 ЧеловекДуши
 
16.01.13
14:19
(7)О ужас, кто так с закладками работает...

Я вот так:

//Где то в теле формы
//_____________________________________________________________________________
Процедура ПриВыбореЗакладки(Номер,Значение) //предопределенная
Форма.ИспользоватьСлой(Значение,2);
ТекущийНомерЗакладки = Номер;
КонецПроцедуры //ПриВыбореЗакладки

//При открытии
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("Основной,Общий1,ДебиторкаБ08","Дебиторка Б08");
Форма.Закладки.ТекущаяСтрока(1);
Форма.ИспользоватьСлой(Форма.Закладки.ПолучитьЗначение(Форма.Закладки.ТекущаяСтрока()),2);
11 viktor_vv
 
16.01.13
14:19
(7) Тогда ХЗ, ищи где в коде еще упоминаются твои списки.
12 ЧеловекДуши
 
16.01.13
14:24
+(7)Обрати внимание на параметр "2" :)
13 Масянька
 
16.01.13
14:24
(10) Рада за тебя. А я так.
(11) Больше нигде не упоминаются списки - только в ПриОткрытии.

Сейчас вот посмотрела - только открыла форму, на первой закладке - а в списке уже больше чем надо.
14 ЧеловекДуши
 
16.01.13
14:25
(13)Ты не поняла, так как у меня, куда легче воспринимать информацию.
По сути, Закладки, это тот же СписокЗначений, методы работы аналогичны (до тошноты) :)

Но вся соль именно в команде ИспользоватьСлой(,<Нужный параметр>)
15 ЧеловекДуши
 
16.01.13
14:26
+(13)То, как ты заполняешь списки, нам не видно, соболезную (не лечится).
Бывает помогает осмысленное удаление прошлых настроек :)
16 Масянька
 
16.01.13
14:30
Умные все, прямо как я :))))

Поле со списком - свойства - сохранять при сохранении настройки.
17 Ёпрст
 
гуру
16.01.13
14:38
(16) дык если воткнула галку - проверять надо в приОткрытии, что список не пустой.. или очищать-заполнять
18 Ёпрст
 
гуру
16.01.13
14:39
по-умолчанию, она выключена у списков и ТЗ на форме
19 Масянька
 
16.01.13
14:44
(17) Ну я же не знала :)))))
AdBlock убивает бесплатный контент. 1Сергей