Нужна помощ, помогите пожайлуста

Тема в разделе "1C и всё что с ней связано", создана пользователем Freez, 25 сен 2011.

Статус темы:
Закрыта.
  1. Freez

    Freez Гость

    Доброго времени суток нужна помощ в програмировании 1с сам не спец но самостоятельно учусь програмиривать. Вобщем у меня на роботе стоит 1с 7.7 комплексная конфигурация Бухгалтерия+торговля+склад+зарплата+кадри и вот столкнулся с проблемой печати ценников, вобщем товари у меня в разних групах а частенько надо напечатать ценники товаров из разних груп а в груповой оброботке нет действия печать ценников и я хочу его туда добавить подскажите што нужно изменить в модуле груповой оброботки сам питался не получается вот сам модуль:

    Код ( (Unknown Language)):
    Перем ИмяФормы;
    Перем Комментарий;

    // ===============================
    // ОПИСАНИЕ МОДУЛЬНЫХ ПЕРЕМЕННЫХ

    Перем СписокПозиций;  // список обрабатываемых позиций
    Перем Значение;            // значение, определяющее действие

    Перем НачальнаяДата;      // дата, на которую сбрасывается ГП

    Перем ЗначениеПометки,ЗначениеНеПометки;

    // ===============================
    // "СЛУЖЕБНЫЕ" ПРОЦЕДУРЫ И ФУНКЦИИ

    // ===============================
    // Название: ДоступностьКнопкиВыбораЗначения
    // Параметры:
    // НЕТ
    // Возвращаемое значение:
    // НЕТ
    // Вызывается из формул элементов диалога:
    //
    // Описание:
    //  в зависимости от выбранного действия изменяет доступность кнопки выбора значения
    //
    Процедура ДоступностьКнопкиВыбораЗначения()
    Если (Действие.ТекущаяСтрока()<=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;

    ИмяФормы = "Обработка.ГрупповаяОбработкаСправочникаНоменклатуры";
    Комментарий = "Групповая обработка справочника ""Номенклатура""";
    Зарание спасибо!!!
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    1. Нет никакой необходимости копировать весь код из типовой конфигурации
    2. В вопросе уже содержится ответ :
    в Действия добавляем процедуру, которая в цикле напечатает ценники для выбранной номенклатуры
    (обращаясь к обработке ПечатьЦенников)

    Детали дорабатываем самостоятельно
     
  3. Freez

    Freez Гость

    Дело в том што в етой конфигурации нет оброботки печать ценников вот скрин 111.JPG
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    М-да. Посмотрел 479-ю - все там есть

    А за русским языком следи - неприятно подсказывать троечнику
     
  5. Freez

    Freez Гость

    Sorry я из Украини плохо пишу по русски.
    Если можна опиши пожайлуста поподробнее что и где нодо сделать я в програмировани 1с полний "валенок" питаюсь сам розобратся и ни черта не выходит второй месяц мучаюсь,ПОЖАЙЛУСТА НАПИШИ ЧТО К ЧЕМУ ОЧЕНЬ НАДО :please: :please: :please: :please: :please: :please: :please: :please:
     
  6. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Если "полный валенок", зачем берешься ? Делов там на полчаса, найди нормального программера, он тебе за 300 гривен
    все сделает, еще и горилки вместе выпьете, да и салом закусите :please:
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей