• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Freez
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

Freez

Доброго времени суток нужна помощ в програмировании 1с сам не спец но самостоятельно учусь програмиривать. Вобщем у меня на роботе стоит 1с 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;

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

vbs

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

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

Freez

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

vbs

М-да. Посмотрел 479-ю - все там есть

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

Freez

М-да. Посмотрел 479-ю - все там есть

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

vbs

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!