Молчаливый
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0
|
Всем доброго времени суток нужна помощ в изминении груповой оброботки нуменклатури. Имею платформу 7,7. Комплексная конфигурация Бухгалтерия+Тороговля+склад+зарплата+кадри. Мне нужно в груповой оброботке добавить действие Печать Ценников, ну так штоби я из разних груп нужние мне наименования вибрал и в груповой оброботке напечатал ценники талько те которие вибрал. Сам питался изменить модуль груповой оброботки но не удачно. Помогите кто может что в модуле добавить нужно? Вот модуль груповой оброботки нуменклатури: Перем ИмяФормы; Перем Комментарий;
// =============================== // ОПИСАНИЕ МОДУЛЬНЫХ ПЕРЕМЕННЫХ
Перем СписокПозиций; // список обрабатываемых позиций Перем Значение; // значение, определяющее действие Перем НачальнаяДата; // дата, на которую сбрасывается ГП Перем ЗначениеПометки,ЗначениеНеПометки;
// =============================== // "СЛУЖЕБНЫЕ" ПРОЦЕДУРЫ И ФУНКЦИИ
// =============================== // Название: ДоступностьКнопкиВыбораЗначения // Параметры: // НЕТ // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // // Описание: // в зависимости от выбранного действия изменяет доступность кнопки выбора значения // Процедура ДоступностьКнопкиВыбораЗначения() Если (Действие.ТекущаяСтрока()<=2)ИЛИ(Действие.ТекущаяСтрока()=8) Тогда Форма.КнопкаВыбораЗначения.Доступность(0); Иначе Форма.КнопкаВыбораЗначения.Доступность(1); КонецЕсли; КонецПроцедуры // ДоступностьКнопкиВыбораЗначения
// =============================== // ПРОЦЕДУРЫ И ФУНКЦИИ, ВЫЗЫВАЕМЫЕ ИЗ ФОРМУЛ ЭЛЕМЕНТОВ ДИАЛОГА
// =============================== // Название: ПерерисовкаСписка // Параметры: // НомерКолонки - номер перерисовываемой колонки, если 0 - то перерисовываем все // НачальноеЗаполнение - если 1, то заполняем таблицу с нуля // // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Флаг // Описание: // перерисовывает таблицу обрабатываемых позиций // Процедура ПерерисовкаСписка(НомерКолонки=0,НачальноеЗаполнение=0) Перем НомерСтроки; Перем Товар; Перем СписокКатегорий,Категории; Перем НаименованиеТовара,Единицы; Перем Всего; Перем СписокЕдиниц; Таблица.ВыбратьСтроки(); Категории = СоздатьОбъект("Справочник.КатегорииТоваров"); Единицы = СоздатьОбъект("Справочник.Единицы"); Всего = СписокПозиций.РазмерСписка(); Для НомерСтроки = 1 По СписокПозиций.РазмерСписка() Цикл Если (НомерСтроки%10=0) Тогда Состояние("Перерисовка таблицы: "+Строка(НомерСтроки)+" из "+Строка(Всего)); КонецЕсли; Если НачальноеЗаполнение=1 Тогда Товар = СписокПозиций.ПолучитьЗначение(НомерСтроки); Таблица.НоваяСтрока(НомерСтроки); Таблица.ПолучитьСтрокуПоНомеру(НомерСтроки); Таблица.Товар = Товар; Таблица.Пометка = ЗначениеПометки; Иначе Таблица.ПолучитьСтроку(); Если Таблица.Пометка=ЗначениеНеПометки Тогда Продолжить; КонецЕсли; Товар = Таблица.Товар; КонецЕсли; Товар.ИспользоватьДату(РабочаяДата(),1); Если (НомерКолонки=0)ИЛИ(НомерКолонки=2) Тогда // наименование Таблица.Наименование = СокрЛП(Товар.Наименование)+ ?(ПустаяСтрока(Товар.Артикул)=1,"",", арт. "+СокрЛП(Товар.Артикул)); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=3) Тогда // вид Таблица.Вид = Строка(Товар.ВидТМЦ); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=4) Тогда // группа Таблица.Группа = ?(Товар.Родитель.Выбран()=1,Товар.Родитель.Наименование,""); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=5) Тогда // статус Таблица.Статус = ?(Товар.ПометкаУдаления()=1,"Помечен на уд.",""); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=6) Тогда // валюта учета Таблица.ВалютаУчета = Товар.ВалютаУчета.Наименование; КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=7) Тогда // НДС Таблица.НДС = Строка(Товар.СтавкаНДС); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=8) Тогда // Категории Категории.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Категории.ВыбратьЭлементы(); СписокКатегорий = ""; Пока Категории.ПолучитьЭлемент()>0 Цикл СписокКатегорий = СписокКатегорий+?(СписокКатегорий="","",", ") +Категории.Категория.Наименование +?(Категории.ПометкаУдаления()=1,"(уд)",""); КонецЦикла; Таблица.Категории = СписокКатегорий; КонецЕсли;
Если (НомерКолонки=0)ИЛИ(НомерКолонки=9) Тогда // базовая единица измерения Таблица.БазоваяЕдИзм = Товар.БазоваяЕдиница.Наименование; КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=10) Тогда // единица измерения по умолчанию Таблица.ЕдИзмПоУмолчанию = Товар.ЕдиницаПоУмолчанию.Единица.Наименование; КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=11) Тогда // Комментарий Таблица.Комментарий = СокрЛП(Товар.Комментарий); КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=12) Тогда // Мин. тов. остаток Таблица.МинимальныйОстаток = Товар.МинимальныйОстаток; КонецЕсли;
Если (НомерКолонки=0)ИЛИ(НомерКолонки=13) Тогда // Торговая наценка Таблица.ТорговаяНаценка = Товар.ТорговаяНаценка; КонецЕсли; Если (НомерКолонки=0)ИЛИ(НомерКолонки=14) Тогда // Единицы измерения СписокЕдиниц = ""; Единицы.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Единицы.ВыбратьЭлементы(); Пока Единицы.ПолучитьЭлемент()>0 Цикл СписокЕдиниц = СписокЕдиниц +СокрЛП(Единицы.Наименование) +"("+Строка(Единицы.Коэффициент) +?(Единицы.ПометкаУдаления()=1,",уд","") +?(Единицы.Единица.ТекущийЭлемент()=Товар.БазоваяЕдиница.ТекущийЭлемент(),",баз.","") +?(Единицы.ТекущийЭлемент()=Товар.ЕдиницаПоУмолчанию.ТекущийЭлемент(),",по ум.","")+"); "; КонецЦикла; Таблица.ЕдиницыИзмерения = СокрЛП(СписокЕдиниц); КонецЕсли; КонецЦикла;
КонецПроцедуры
// =============================== // Название: СортироватьТаблицу // Параметры: // Режим // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Кнопка "Сортировать" и список "СписокКолонокСортировки" // Описание: // сортирует таблицу по колонке // Процедура СортироватьТаблицу() Перем СпособСортировки; Если СписокКолонокСортировки.ТекущаяСтрока()>0 Тогда СпособСортировки = СписокКолонокСортировки.ПолучитьЗначение(СписокКолонокСортировки.ТекущаяСтрока() ); Если НаправлениеСортировки.ТекущаяСтрока()>0 Тогда СпособСортировки = СпособСортировки + НаправлениеСортировки.ПолучитьЗначение(НаправлениеСортировки.ТекущаяСтрока()); КонецЕсли; Таблица.Сортировать(СпособСортировки); КонецЕсли; КонецПроцедуры // СортироватьТаблицу
// =============================== // Название: ГрупповаяПометка // Параметры: // Режим // 1 - пометить все // 2 - снять пометку // 3 - инавертировать пометку // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Кнопки "Пометить все","Снять пометку","Инвертировать пометку". // Описание: // в зависимости от значения параметра выполняет пометку всех позиций, // снимает пометку со всех позиций или инвертирует ее // Процедура ГрупповаяПометка(Режим) НомерСтроки = 1; Таблица.ВыбратьСтроки(); Пока Таблица.ПолучитьСтроку()>0 Цикл Если Режим=1 Тогда Таблица.Пометка = ЗначениеПометки; ИначеЕсли Режим=2 Тогда Таблица.Пометка = ЗначениеНеПометки; ИначеЕсли Режим=3 Тогда Если Таблица.Пометка=ЗначениеНеПометки Тогда Таблица.Пометка = ЗначениеПометки; Иначе Таблица.Пометка = ЗначениеНеПометки; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры
// =============================== // Название: ВыборЭлементаВСпискеДействий // Параметры: // НЕТ // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Список "Действие" // Описание: // обнуляем значение и изменяет доступность кнопки выбора значения // Процедура ИзмДействие() ЗначениеВВидеСтроки = ""; Значение = 0; ДоступностьКнопкиВыбораЗначения(); КонецПроцедуры
// =============================== // Название: ВыборЗначения // Параметры: // НЕТ // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Кнопка "Значение",. // Описание: // открывает окно выбора значения // Процедура ВыборЗначения() Перем ВыбЗначение; Если Действие.ТекущаяСтрока()=3 Тогда // ("Перенести в группу"); ВыбЗначение = СоздатьОбъект("Справочник.ТМЦ"); ВыбЗначение.ВыборГруппы(1); Если ВыбЗначение.Выбрать("Выбор группы номенклатуры",)=1 Тогда Если ВыбЗначение.ЭтоГруппа()=0 Тогда ЗначениеВВидеСтроки = ВыбЗначение.Родитель.Наименование; Значение = ВыбЗначение.Родитель.ТекущийЭлемент(); Иначе ЗначениеВВидеСтроки = ВыбЗначение.Наименование; Значение = ВыбЗначение.ТекущийЭлемент(); КонецЕсли; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=4 Тогда // ("Установить валюту учета"); ВыбЗначение = СоздатьОбъект("Справочник.Валюты"); Если ВыбЗначение.Выбрать("Выбор валюты учета",)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение.Наименование; Значение= ВыбЗначение.ТекущийЭлемент(); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=5 Тогда // ("Установить НДС"); Спис = СоздатьОбъект("СписокЗначений"); Спис.ДобавитьЗначение(ОсновнаяСтавкаНДС); Спис.ДобавитьЗначение(ЛьготнаяСтавкаНДС); Спис.ДобавитьЗначение(БезНДС); ВыбЗначение = глВосстановитьЗначение(,"БазНДС"); Если Спис.ВыбратьЗначение(ВыбЗначение,"Ввод ставки НДС",,,2) = 1 Тогда ЗначениеВВидеСтроки = Строка(ВыбЗначение); Значение= ВыбЗначение; КонецЕсли; ИначеЕсли (Действие.ТекущаяСтрока()=6)ИЛИ(Действие.ТекущаяСтрока()=7) Тогда // ("Установить или удалить из категории"); ВыбЗначение = СоздатьОбъект("Справочник.ВидыКатегории"); Если ВыбЗначение.Выбрать("Выбор категории",)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение.Наименование; Значение= ВыбЗначение.ТекущийЭлемент(); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=9 Тогда // ("Добавить единицу измерения"); ВыбЗначение2 = СоздатьОбъект("Справочник.ТМЦ"); ВыбЗначение2.ВыборГруппы(0); Если ВыбЗначение2.Выбрать("Выбор товара",)=1 Тогда Если (ВыбЗначение2.Выбран()>0)И(ВыбЗначение2.ЭтоГруппа()=0) Тогда ВыбЗначение = СоздатьОбъект("Справочник.Единицы"); ВыбЗначение.ИспользоватьВладельца(ВыбЗначение2.ТекущийЭлемент()); Если ВыбЗначение.Выбрать("Выбор единицы измерения",)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение.Наименование; Значение= ВыбЗначение.ТекущийЭлемент(); КонецЕсли; КонецЕсли; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=10 Тогда // ("Удалить единицу измерения"); ВыбЗначение = СоздатьОбъект("Справочник.КлассификаторЕдИзм"); Если ВыбЗначение.Выбрать("Выбор единицы измерения",)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение.ПолнНаименование; Значение= ВыбЗначение.ТекущийЭлемент(); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=11 Тогда // ("Установить комментарий"); ВыбЗначение = ""; Если ВвестиСтроку(ВыбЗначение,"Ввод комментария",200)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение; Значение= ВыбЗначение; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=12 Тогда // ("Установить минимальный остаток"); ВыбЗначение = 0; Если ВвестиЧисло(ВыбЗначение,"Ввод минимального остатка",12,3)=1 Тогда ЗначениеВВидеСтроки = Строка(ВыбЗначение); Значение= ВыбЗначение; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=13 Тогда // ("Установить торговую наценку"); ВыбЗначение = 0; Если ВвестиЧисло(ВыбЗначение,"Ввод торговой наценки",6,2)=1 Тогда ЗначениеВВидеСтроки = Строка(ВыбЗначение); Значение= ВыбЗначение; КонецЕсли; КонецЕсли; КонецПроцедуры
// =============================== // Название: Выполнить // Параметры: // НЕТ // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // Кнопка "Выполнить",. // Описание: // выполняет групповое действие // Процедура Выполнить() Перем НомерСтроки; Перем Док; Перем ТипДок; Перем Товар,ТовДляПоиска; Перем Категория,Единица;
Перем ЧислоОбработанныхПозиций; Категория = СоздатьОбъект("Справочник.КатегорииТоваров"); Единица = СоздатьОбъект("Справочник.Единицы"); Если (ПустоеЗначение(Значение)=1) Тогда // пустое значение Если (Действие.ТекущаяСтрока()=4)ИЛИ (Действие.ТекущаяСтрока()=5)ИЛИ(Действие.ТекущаяСтрока()=6)ИЛИ (Действие.ТекущаяСтрока()=7)ИЛИ (Действие.ТекущаяСтрока()=9)ИЛИ(Действие.ТекущаяСтрока()=10) Тогда Предупреждение("Не задано значение"); Возврат; КонецЕсли; КонецЕсли;
Если Действие.ТекущаяСтрока()=4 Тогда // ("Установить валюту учета"); Если Вопрос("После изменения валюты учета потребуется перепровести все документы."+ "Вы действительно хотите изменить валюту учета?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли; КонецЕсли; ЧислоОбработанныхПозиций = 0; Таблица.ВыбратьСтроки(); Для НомерСтроки = 1 По СписокПозиций.РазмерСписка() Цикл Таблица.ПолучитьСтроку(); ТовДляПоиска = Таблица.Товар;
Товар = СоздатьОбъект("Справочник.ТМЦ"); Если Товар.НайтиЭлемент(ТовДляПоиска)=0 Тогда Продолжить; КонецЕсли; Товар.ИспользоватьДату(РабочаяДата(),1);
Если Таблица.Пометка=ЗначениеНеПометки Тогда Продолжить; КонецЕсли; глКомментарий("Выполняется обработка позиции "+Товар.Наименование,2); Если Действие.ТекущаяСтрока()=1 Тогда // ("Пометить на удаление"); Товар.Удалить(0); глЗаписьЖурналаРегистрации(Комментарий, 1, 3, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=2 Тогда // ("Снять пометку удаления"); Если Товар.ПометкаУдаления()=1 Тогда Товар.СнятьПометкуУдаления(); глЗаписьЖурналаРегистрации(Комментарий, 1, 5, Товар.ТекущийЭлемент(), 2); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=3 Тогда // ("Перенести в группу"); Товар.Родитель = ?(ПустоеЗначение(Значение)>0,ПолучитьПустоеЗначение("Справочник.ТМЦ"),Значение.ТекущийЭлемент()); Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=4 Тогда // ("Установить валюту учета"); Товар.ВалютаУчета = Значение.ТекущийЭлемент(); Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=5 Тогда // ("Установить НДС"); Товар.СтавкаНДС = Значение; Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=6 Тогда // ("Добавить категорию"); Категория.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Если Категория.НайтиПоРеквизиту("Категория",Значение.ТекущийЭлемент(),0)<=0 Тогда Категория.Новый(); Категория.Категория = Значение; Категория.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 1, Категория.ТекущийЭлемент(), 2); Иначе Если Категория.ПометкаУдаления()=1 Тогда Категория.СнятьПометкуУдаления(); глЗаписьЖурналаРегистрации(Комментарий, 1, 5, Категория.ТекущийЭлемент(), 2); КонецЕсли; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=7 Тогда // ("Удалить категорию"); Категория.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Если Категория.НайтиПоРеквизиту("Категория",Значение.ТекущийЭлемент(),0)>0 Тогда Категория.Удалить(0); глЗаписьЖурналаРегистрации(Комментарий, 1, 3, Категория.ТекущийЭлемент(), 2); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=8 Тогда // ("Удалить все категории"); Категория.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Категория.ВыбратьЭлементы(); Пока Категория.ПолучитьЭлемент()>0 Цикл Категория.Удалить(0); глЗаписьЖурналаРегистрации(Комментарий, 1, 3, Категория.ТекущийЭлемент(), 2); КонецЦикла; ИначеЕсли Действие.ТекущаяСтрока()=9 Тогда // ("Добавить единицу"); Единица.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Если Единица.НайтиПоРеквизиту("Единица",Значение.Единица.ТекущийЭлемент(),0)<=0 Тогда Единица.Новый(); Единица.Единица = Значение.Единица; Единица.Наименование = Значение.Наименование; Единица.Коэффициент = Значение.Коэффициент; Единица.Вес = Значение.Вес; Единица.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 1, Единица.ТекущийЭлемент(), 2); Иначе Если Единица.ПометкаУдаления()=1 Тогда Единица.СнятьПометкуУдаления(); глЗаписьЖурналаРегистрации(Комментарий, 1, 5, Единица.ТекущийЭлемент(), 2); КонецЕсли; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=10 Тогда // ("Удалить единицу измерения"); Если Товар.БазоваяЕдиница.ТекущийЭлемент()<>Значение.ТекущийЭлемент() Тогда Единица.ИспользоватьВладельца(Товар.ТекущийЭлемент()); Если Товар.ЕдиницаПоУмолчанию.Единица.ТекущийЭлемент()=Значение.ТекущийЭлемент() Тогда Единица.НайтиПоРеквизиту("Единица",Товар.БазоваяЕдиница.ТекущийЭлемент(),0); Товар.ЕдиницаПоУмолчанию = Единица.ТекущийЭлемент(); Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); КонецЕсли; Если Единица.НайтиПоРеквизиту("Единица",Значение.ТекущийЭлемент(),0)>0 Тогда Единица.Удалить(0); глЗаписьЖурналаРегистрации(Комментарий, 1, 3, Единица.ТекущийЭлемент(), 2); КонецЕсли; КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=11 Тогда // ("Установить комментарий"); Товар.Комментарий = ?(ПустоеЗначение(Значение)=1,"",СокрЛП(Значение)); Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=12 Тогда // ("Установить мин. тов. остаток"); Товар.МинимальныйОстаток = СокрЛП(Значение); Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); ИначеЕсли Действие.ТекущаяСтрока()=13 Тогда // ("Установить торг. наценку"); Товар.ТорговаяНаценка = Значение; Товар.Записать(); глЗаписьЖурналаРегистрации(Комментарий, 1, 2, Товар.ТекущийЭлемент(), 2); КонецЕсли; ЧислоОбработанныхПозиций = ЧислоОбработанныхПозиций + 1;
КонецЦикла; Если Действие.ТекущаяСтрока()=1 Тогда // ("Пометить на удаление"); ПерерисовкаСписка(); ИначеЕсли Действие.ТекущаяСтрока()=2 Тогда // ("Снять пометку удаления"); ПерерисовкаСписка(); ИначеЕсли Действие.ТекущаяСтрока()=3 Тогда // ("Перенести в группу"); ПерерисовкаСписка(4); ИначеЕсли Действие.ТекущаяСтрока()=4 Тогда // ("Установить валюту учета"); ПерерисовкаСписка(6); Если ЧислоОбработанныхПозиций>0 Тогда Последовательность.ОсновнаяПоследовательность.Установить(НачальнаяДата); КонецЕсли; ИначеЕсли Действие.ТекущаяСтрока()=5 Тогда // ("Установить НДС"); ПерерисовкаСписка(7); ИначеЕсли Действие.ТекущаяСтрока()=6 Тогда // ("Добавить категорию"); ПерерисовкаСписка(8); ИначеЕсли Действие.ТекущаяСтрока()=7 Тогда // ("Удалить категорию"); ПерерисовкаСписка(8); ИначеЕсли Действие.ТекущаяСтрока()=8 Тогда // ("Удалить все категории"); ПерерисовкаСписка(8); ИначеЕсли Действие.ТекущаяСтрока()=9 Тогда // ("Добавить единицу"); ПерерисовкаСписка(); ИначеЕсли Действие.ТекущаяСтрока()=10 Тогда // ("Удалить единицу измерения"); ПерерисовкаСписка(); ИначеЕсли Действие.ТекущаяСтрока()=11 Тогда // ("Установить комментарий"); ПерерисовкаСписка(11); ИначеЕсли Действие.ТекущаяСтрока()=12 Тогда // ("Установить мин. тов. остаток"); ПерерисовкаСписка(12); ИначеЕсли Действие.ТекущаяСтрока()=13 Тогда // ("Установить торг. наценку"); ПерерисовкаСписка(13); КонецЕсли; Предупреждение("Групповая обработка завершена. Число обработанных позиций: "+Строка(ЧислоОбработанныхПозиций));
КонецПроцедуры
// =============================== // Название: ПриДвойномЩелчкеНаТаблице // Параметры: // НЕТ // Возвращаемое значение: // НЕТ // Вызывается из формул элементов диалога: // таблица значений "Таблица" // Описание: // изменяет пометку строки таблицы // Процедура ПриДвойномЩелчкеНаТаблице() // при двойном щелчке инвертирует пометку соответствующей позиции Если Таблица.Пометка=ЗначениеНеПометки Тогда Таблица.Пометка = ЗначениеПометки; Иначе Таблица.Пометка = ЗначениеНеПометки; КонецЕсли;
КонецПроцедуры // ПриДвойномЩелчкеНаТаблице
// =============================== // ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
// =============================== Процедура ПриОткрытии() // Предопределенная процедура Если ПустоеЗначение(Форма.Параметр)=1 Тогда Предупреждение("Не указан список обрабатываемых позиций. Данная обработка запускается автоматически из других процедур конфигурации."); СтатусВозврата(0); Возврат; КонецЕсли; СписокПозиций = Форма.Параметр;
ТекСтрока = Действие.ТекущаяСтрока(); ДоступностьКнопкиВыбораЗначения(); Таблица.НоваяКолонка("Пометка","Число",4,0,"Пометка"); Таблица.ВыводитьПиктограммы("Пометка",1); Таблица.НоваяКолонка("Наименование","Строка",100,,"Наименование"); Таблица.НоваяКолонка("Вид","Строка",10,,"Вид"); Таблица.НоваяКолонка("Группа","Строка",40,,"Группа"); Таблица.НоваяКолонка("Статус","Строка",15,,"Статус"); Таблица.НоваяКолонка("ВалютаУчета","Строка",17,,"Валюта учета"); Таблица.НоваяКолонка("НДС","Строка",10,,"НДС(%)"); Таблица.НоваяКолонка("Категории","Строка",80,,"Категории"); Таблица.НоваяКолонка("БазоваяЕдИзм","Строка",17,,"Баз. ед. изм."); Таблица.НоваяКолонка("ЕдИзмПоУмолчанию","Строка",24,,"Ед. изм. по умолч."); Таблица.НоваяКолонка("Комментарий","Строка",100,,"Комментарий"); Таблица.НоваяКолонка("МинимальныйОстаток","Число",15,2,"Мин. остаток"); Таблица.НоваяКолонка("ТорговаяНаценка","Число",10,2,"Торг. наценка"); Таблица.НоваяКолонка("ЕдиницыИзмерения","Строка",150,,"Единицы измерения"); Таблица.НоваяКолонка("Товар"); Таблица.ВидимостьКолонки("Товар",0); Таблица.Фиксировать(0,2); ПерерисовкаСписка(0,1); // с начальным заполнением // формируем список колонок сортировки СписокКолонокСортировки.УдалитьВсе(); Для Индекс = 1 По Таблица.КоличествоКолонок() Цикл Заголовок = ""; ИдентКолонки = СокрЛП(Таблица.ПолучитьПараметрыКолонки(Индекс,,,,Заголовок)); Если Найти(ВРег("=Товар=Пометка="),ВРег("="+ИдентКолонки+"="))<=0 Тогда СписокКолонокСортировки.ДобавитьЗначение(ИдентКолонки,Заголовок); КонецЕсли; КонецЦикла; // формируем список направлений сортировки НаправлениеСортировки.УдалитьВсе(); НаправлениеСортировки.ДобавитьЗначение("+","возрастанию"); НаправлениеСортировки.ДобавитьЗначение("-","убыванию"); // будем отслеживать только реальные изменения этих реквизитов Форма.СписокКолонокСортировки.ВыполнятьФормулуТолькоПриИзменении(1); Форма.НаправлениеСортировки.ВыполнятьФормулуТолькоПриИзменении(1); НомерКолонкиСортировки = ВосстановитьЗначение("НомерКолонкиСортировкиВГрупповойОбработкеНоменклатуры"); НомерНаправленияСортировки = ВосстановитьЗначение("НомерНаправленияСортировкиВГрупповойОбработкеНоменклатуры"); Если ПустоеЗначение(НомерНаправленияСортировки)=0 Тогда НаправлениеСортировки.ТекущаяСтрока(НомерНаправленияСортировки); КонецЕсли; Если ПустоеЗначение(НомерКолонкиСортировки)=0 Тогда СписокКолонокСортировки.ТекущаяСтрока(НомерКолонкиСортировки); СортироватьТаблицу(); КонецЕсли; КонецПроцедуры // ПриОткрытии
// =============================== Процедура ПриЗакрытии() // Предопределенная процедура глСохранитьЗначение(ИмяФормы, "НомерКолонкиСортировкиВГрупповойОбработкеНоменклатуры",СписокКолонокСортировки.ТекущаяСтрока()); глСохранитьЗначение(ИмяФормы, "НомерНаправленияСортировкиВГрупповойОбработкеНоменклатуры",НаправлениеСортировки.ТекущаяСтрока()); КонецПроцедуры // ПриЗакрытии
// =============================== // ТЕЛО МОДУЛЯ
// инициализация списков
Действие.ДобавитьЗначение("Пометить на удаление"); // 1 Действие.ДобавитьЗначение("Снять пометку удаления"); // 2 Действие.ДобавитьЗначение("Перенести в группу"); // 3 Действие.ДобавитьЗначение("Установить валюту учета"); // 4 Действие.ДобавитьЗначение("Установить ставку НДС"); // 5 Действие.ДобавитьЗначение("Установить категорию"); // 6 (+1) Действие.ДобавитьЗначение("Удалить из категории"); // 7 Действие.ДобавитьЗначение("Удалить из всех категорий"); // 8 Действие.ДобавитьЗначение("Скопировать единицу измерения");// 9 Действие.ДобавитьЗначение("Удалить единицу измерения"); // 10 Действие.ДобавитьЗначение("Установить комментарий"); // 11 Действие.ДобавитьЗначение("Установить мин. тов. остаток"); // 12 Действие.ДобавитьЗначение("Установить торг. наценку"); // 13 Действие.ТекущаяСтрока(3);
НачальнаяДата = Константа.ДатаНачалаРаботы;
ЗначениеПометки = 2; ЗначениеНеПометки = 1;
ИмяФормы = "Обработка.ГрупповаяОбработкаСправочникаНоменклатуры"; Комментарий = "Групповая обработка справочника ""Номенклатура""";
Зарание спасибо!!!!
|