Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 08:25

Формирование ценников в три колонки

Автор Tesla, 27 авг 2014, 16:59

0 Пользователей и 1 гость просматривают эту тему.

Tesla

ДОбрый день. Нуждаюсь в подсказке. Есть процедура формирования ценников в две колонки, а нужно в три. Насколько я понял, процедура отличается от оригинальной в начальной конфигурации.  И ещё: можно ли в 7.7 как-то указывать размеры полей отступа ? Настройки принтера не влияют почему-то. Спасибо.

Процедура ПечатьЦенников()
Перем ПеременнаяВторогоЦеннника;
ПеременнаяВторогоЦеннника=1;
Перечисление.ВидыКонтрагентов.Нерезидент Тогда
Таб=СоздатьОбъект("Таблица");
Если Число(Фирма.Код)=1 Тогда
Таб.ИсходнаяТаблица("Ценник"); 
Иначе
Таб.ИсходнаяТаблица("Ценник1"); 
КонецЕсли;

ВыбратьСтроки();
Пока  ПолучитьСтроку()=1 Цикл   
Если ПеременнаяВторогоЦеннника=1 Тогда
СпрТипЦен=СоздатьОбъект("Справочник.Цены");
СпрТипЦен.ИспользоватьВладельца(Товар);
СпрТипЦен.ВыбратьЭлементы();
Пока СпрТипЦен.ПолучитьЭлемент()=1 Цикл
Если Строка(СпрТипЦен.ТекущийЭлемент().КатегорияЦены)= "Розничная" Тогда
ПечРозн=Формат(СпрТипЦен.ТекущийЭлемент().Цена.Получить(ТекущаяДата()),"Ч.2")+" "+СпрТипЦен.ТекущийЭлемент().Валюта.Получить(РабочаяДата()).Кратко; 

КонецЕсли;
КонецЦикла;
ПечНаименование=Товар;
ПечЕдиница=Единица;
Таб.ВывестиСекцию("Товар|Ценник");
ПеременнаяВторогоЦеннника=2;
Иначе

СпрТипЦен=СоздатьОбъект("Справочник.Цены");
СпрТипЦен.ИспользоватьВладельца(Товар);
СпрТипЦен.ВыбратьЭлементы();

Пока СпрТипЦен.ПолучитьЭлемент()=1 Цикл
Если Строка(СпрТипЦен.ТекущийЭлемент().КатегорияЦены)= "Розничная" Тогда
ПечРозн=Формат(СпрТипЦен.ТекущийЭлемент().Цена.Получить(ТекущаяДата()),"Ч.2")+" "+СпрТипЦен.ТекущийЭлемент().Валюта.Получить(РабочаяДата()).Кратко; 
КонецЕсли;
КонецЦикла;
ПечНаименование=Товар;
ПечЕдиница=Единица;
Таб.ПрисоединитьСекцию("Товар|Ценник");
ПеременнаяВторогоЦеннника=1;
КонецЕсли;
КонецЦикла;
Таб.Опции(0,0,0,0,ПарСтрСпр);
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.ТолькоПросмотр(1);
Таб.Показать("Ценник товаров","");
ВыбТовар=0;
ПеременнаяВторогоЦеннника=0;
КонецПроцедуры // ПечатьЦенников()

Tesla

неужели настолько сложный код... :xfbnsdfb:

Herby

Цитата: Tesla от 27 авг 2014, 20:22неужели настолько сложный код.

по отступам смотрите справку по методу ПараметрыСтраницы().

ну а по третьей колонке приблизительно так:


............

СпрТипЦен=СоздатьОбъект("Справочник.Цены"); // лучше здесь создать объект, а не как у вас каждый раз // его в цикле создавать

СчетчикКолонок = 3;

ВыбратьСтроки()
Пока ПолучитьСтроку()=1 Цикл   
   СпрТипЦен.ИспользоватьВладельца(Товар);
   СпрТипЦен.ВыбратьЭлементы();
   Пока СпрТипЦен.ПолучитьЭлемент()=1 Цикл
     Если Строка(СпрТипЦен.ТекущийЭлемент().КатегорияЦены)= "Розничная" Тогда
       ПечРозн=Формат(СпрТипЦен.ТекущийЭлемент().Цена.Получить(ТекущаяДата()),"Ч.2")+"   
       "+СпрТипЦен.ТекущийЭлемент().Валюта.Получить(РабочаяДата()).Кратко; 
     КонецЕсли;
   КонецЦикла;

   ПечНаименование=Товар;
   ПечЕдиница=Единица;
   Если СчетчикКолонок = 3 Тогда
     Таб.ВывестиСекцию("Товар|Ценник");
     СчетчикКолонок = 0;
   Иначе
     Таб.ПрисоединитьСекцию("Товар|Ценник");
   КонецЕсли;

   СчетчикКолонок = СчетчикКолонок + 1;
КонецЦикла;

..............



Tesla

спасибо за отзывчивость и помощь. Представляете, решил вчера сам заняться проблемой и в итоге по тому же принципу влепил третью колонку. Но ваш способ изящнее и экономнее :) спасибо :btbzdb:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск