Имя: Пароль:
1C
1C 7.7
v7: Таблица значений
0 msk-07
 
18.09.13
16:27
Подскажите пишу обработку для 7.7 и нужно чтобы пользователь выбирал несколько номенклатур и далее идет их обработка.

У меня вопрос, как сделать, в тз чтобы пользователь с помощью новой строчки или клав Ins  добавлял нужно. Пролазил интернет, ни чего хорошего не нашел по описанию

Очень буду рад дискуссиям.
1 фобка
 
18.09.13
16:30
Подбор на кнопку, в руками строчку не добавишь
2 msk-07
 
18.09.13
16:31
Подбори записывать что выбрана в таблицу значений?
3 Гость2
 
18.09.13
16:31
(1) Уверен?
4 Стрелок
 
18.09.13
16:31
не русский что ли?
5 фобка
 
18.09.13
16:32
На кнопку можно формекслм, но все равно кодом.
да тз.новаястрока() и попер заполнять
6 Mikeware
 
18.09.13
16:32
(1) формекс.
7 msk-07
 
18.09.13
16:33
Да, что то не очень получилось ответить на пред. сообщение.
8 msk-07
 
18.09.13
16:34
Подбор, все равно не соображу как это должно работать.
9 Гость2
 
18.09.13
16:35
(8) Двойной клик по ТЗ
10 Стрелок
 
18.09.13
16:35
см справочник товары "для подбора" - там всё есть
11 Ёпрст
 
18.09.13
16:36
(0)
на вот, занимайся
12 Ёпрст
 
18.09.13
16:37
13 пипец
 
18.09.13
16:38
кнопка на кнопке
РаботаСоСписком("Добавить",МФВыбТовары,"Номенклатура")

----
Процедура РаботаСоСписком(Режим,Список,ТипСправочника)
    Перем ТекПоз;
    Перем ТекЭлемент;
    Перем Фрм;
    
    ТекПоз = Список.ТекущаяСтрока();
    Если ТекПоз>0 Тогда
        ТекЭлемент=Список.ПолучитьЗначение(ТекПоз);
    КонецЕсли;
    
    Если Режим="Добавить" Тогда        // добавляем в список один элемент
        СписокПодбора = Список;
        СправочникПодбора = ВРег(ТипСправочника);
        // открываем окно подбора
        ОткрытьПодбор("Справочник."+ТипСправочника,,Фрм,0,ТекЭлемент);
        Фрм.ВыборГруппы(1);
        
    ИначеЕсли Режим="ДобавитьНесколько" Тогда  // добавляем в список несколько элементов
        СписокПодбора = Список;
        СправочникПодбора = ВРег(ТипСправочника);
        // открываем окно подбора
        ОткрытьПодбор("Справочник."+ТипСправочника,,Фрм,1,ТекЭлемент);
        Фрм.ВыборГруппы(1);
        
    ИначеЕсли Режим="УдалитьВсе" Тогда    // удаляем все элементы из списка
        Список.УдалитьВсе();
        
    ИначеЕсли Режим="Удалить" Тогда    // удаляем из списка один элемент
        Если ТекПоз>0 Тогда
            Список.УдалитьЗначение(ТекПоз);
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры        // работа со списком
14 Ёпрст
 
18.09.13
16:38
но красившее - прямой ввод в ТЗ или Табличное поле использовать
15 пипец
 
18.09.13
16:39
ну есть еще Accel.dll как раз для этого
16 Стрелок
 
18.09.13
16:46
Перем СписокДляПодбора;  

//*******************************************
Процедура РаботаСоСписком(Режим,Список,ВидСправочника="")
    Перем Фрм;  
    Перем ТекЭлемент;
    
    Если Режим="Плюс" Тогда  
        СправочникДляВыбора=СоздатьОбъект("Справочник."+ВидСправочника);
        СправочникДляВыбора.ВыборГруппы(1);
        СправочникДляВыбора.Выбрать("Выбор элементов из справочника для отбора","ФормаСписка");
        Если ПустоеЗначение(СправочникДляВыбора.ТекущийЭлемент())=0 Тогда
            Если Список.НайтиЗначение(СправочникДляВыбора.ТекущийЭлемент())=0 Тогда
                Список.ДобавитьЗначение(СправочникДляВыбора.ТекущийЭлемент(),СокрЛП(СправочникДляВыбора.ТекущийЭлемент().Наименование));
            КонецЕсли;
        КонецЕсли;
    ИначеЕсли Режим="ПлюсПлюс" Тогда
        СписокДляПодбора=Список;
        ОткрытьПодбор("Справочник."+ВидСправочника,"ФормаСписка",Фрм,1,ТекЭлемент);
        Фрм.ВыборГруппы(1);
    ИначеЕсли Режим="Минус" Тогда
        Попытка
            Список.УдалитьЗначение(Список.ТекущаяСтрока());
        Исключение
        КонецПопытки;    
    ИначеЕсли Режим="МинусМинус" Тогда                                  
        Список.УдалитьВсе();
    КонецЕсли;    
КонецПроцедуры
//*******************************************
Процедура ОбработкаПодбора(Значение)
    Если ТипЗначенияСтр(СписокДляПодбора)="СписокЗначений" Тогда
        Если СписокДляПодбора.НайтиЗначение(Значение)=0 Тогда
            СписокДляПодбора.ДобавитьЗначение(Значение,СокрЛП(Значение.Наименование));
        КонецЕсли;
    КонецЕсли;    
КонецПроцедуры
//*******************************************