Прайс-лист с картинками для УТ 11 (УФ, добавление логотипа и свободных текстовых полей)

08.04.13

Задачи пользователя - Прайсы

Развитие отчета http://infostart.ru/public/177876/ добавлением текстовых полей и логотипа в заголовок формы СКД, без изменения основной конфигурации.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПрайсЛист.erf
.erf 18,04Kb
201
201 Скачать (1 SM) Купить за 1 850 руб.

История: отчет создание, которого описано в Картинка в таблице СКД (управляемое приложение) на примере УТ11, простое решение "в лоб" или легкая модификация стандартного отчета Прайс-Лист понравился заказчику, но чуть позже захотелось большего, а именно: хотелось добавить некоторое количество сворачиваемых группировкой текстовых полей и логотип в заголовке отчета (причем логотип хотелось добавлять по пути файла с диска), чтобы прямо в таком виде можно было отправлять покупателю.

Как говорится "нет ничего невозможного" (с). Приступим:

Сначала модифицируем Основную схему компоновки данных исходного отчета, добавим нужные нам параметры:

Новые параметры

Укажем их в качестве пользовательских настроек:

Пользовательские настройки

Добавим строковый реквизит отчета АдресЛоготипа для передачи через него адреса хранилища во временном хранилище:

Адрес логотипа

Добавим управляемую ФормуОтчета,

Реквизит АдресЛоготипа не размещаем на форме:

КомпоновщиНастроек

Обратим внимание на то, что элемент формы КомпоновщикНастроекПользовательскиеНастройки, не имеет в своем составе колонок, а они нам нужны, чтобы упростить выбор пользователем файла логотипа. Вызваем контекстное меню КомпоновщикНастроекПользовательскиеНастройки и выбираем Добавить колонки:

колонки 

Появятся колонки, что значительно упрощает дальнейшие действия с настройкой отчета:

теперь они есть

Для элемента формы КомпоновщикНастроекПользовательскиеНастройки зададим действие ПриАктивизацииЯчейки:

ПриАктивацииЯчейки

и наполним процедуру (которая включит отображение кнопки выбора для настройки "Путь к логотипу"):

&НаКлиенте
Процедура КомпоновщикНастроекПользовательскиеНастройкиПриАктивизацииЯчейки(Элемент)
    Если Не Элемент.ТекущиеДанные = Неопределено Тогда
        Элементы.КомпоновщикНастроекПользовательскиеНастройкиЗначение.КнопкаВыбора = ?(Элемент.ТекущиеДанные.Настройка = "Путь к логотипу", Истина, Неопределено);
    КонецЕсли;
КонецПроцедуры

Для элемента формы КомпоновщикНастроекПользовательскиеНастройкиЗначение зададим действие НачалоВыбора:

НачалоВыбора

и наполним процедуру (которая для настройки "Путь к логотипу", умеет вызывать диалог выбора файла и при успешном выборе загружает его во временное хранилище заполняя ревкизит отчета АдресЛоготипа):

&НаКлиенте
Процедура КомпоновщикНастроекПользовательскиеНастройкиЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Если Элемент.Родитель.Родитель.ТекущиеДанные.Настройка = "Путь к логотипу" Тогда   
        Настройка = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПутьКЛоготипу").ИдентификаторПользовательскойНастройки);   
        Режим = РежимДиалогаВыбораФайла.Открытие;   
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);   
        ДиалогОткрытияФайла.ПолноеИмяФайла = Настройка.Значение;   
        Текст = "ru = ""Логотип""; en = ""Logo""";   
        Фильтр = НСтр(Текст)+"(*.*)|*.*";
        ДиалогОткрытияФайла.Фильтр = Фильтр;   
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;   
        ДиалогОткрытияФайла.Заголовок = "Выберите файл логотипа"   
        Если ДиалогОткрытияФайла.Выбрать() Тогда    
            Настройка.Значение = ДиалогОткрытияФайла.ПолноеИмяФайла;    
            Настройка.Использование = Истина;    
            Элементы.КомпоновщикНастроекПользовательскиеНастройки.ТекущийЭлемент = Элементы.КомпоновщикНастроекПользовательскиеНастройкиНастройка;     
            ОбновитьОтображениеДанных();    
            Элементы.КомпоновщикНастроекПользовательскиеНастройки.ТекущийЭлемент = Элементы.КомпоновщикНастроекПользовательскиеНастройкиЗначение;
            Отчет.АдресЛоготипа = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ДиалогОткрытияФайла.ПолноеИмяФайла), Отчет.АдресЛоготипа);
       КонецЕсли;           
       СтандартнаяОбработка = Ложь;  
    КонецЕсли; 
КонецПроцедуры

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

Дорабатываем процедуру модуля объекта ПриКомпоновкеРезультата, после строки  ДокументРезультат.Очистить(); добавим вызов:

ВывестиСамопальныйЗаголовок(ДокументРезультат, КомпоновщикНастроек);

И пишем новую процедуру: ВывестиСамопальныйЗаголовок (процедура читает параметры компоновки и выводит их предварительно сгруппировав, она же выводит логотип):

Процедура ВывестиСамопальныйЗаголовок(ДокументРезультат, КомпоновщикНастроек)
    ДокументРезультат.НачатьАвтогруппировкуСтрок();    
    КоличествоКолонок = ВернутьКоличествоКолонки(КомпоновщикНастроек.Настройки.Выбор.Элементы);  
    СекцияЗаголовка = ДокументРезультат.ПолучитьОбласть(1, , 1);
    ДокументРезультат.Вывести(СекцияЗаголовка, 1, "ГруппаЗаголовка", Истина);
    Область = ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы, 1);  
    Область.ВысотаСтроки = 5
    ТекстЗаголовка = ВернутьЗначениеПараметраНастройкиСКД(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, "Заголовок");  
    Если ЗначениеЗаполнено(ТекстЗаголовка) Тогда   
        Область = СекцияЗаголовка.Область("R1C1");   
        Область.Шрифт = Новый Шрифт(Область.Шрифт, , 13, Истина);   
        Область.Текст = ТекстЗаголовка;   
        ДокументРезультат.Вывести(СекцияЗаголовка, 2, "ЭлементЗаголовка", Истина);  
    КонецЕсли;    

    Компания = ВернутьЗначениеПараметраНастройкиСКД(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, "Компания");  
    Если ЗначениеЗаполнено(Компания) Тогда   
        Область = СекцияЗаголовка.Область("R1C1");   
        Область.Шрифт = Новый Шрифт(Область.Шрифт, , 10, Истина);   
        Область.Текст = Компания;   
        ДокументРезультат.Вывести(СекцияЗаголовка, 2, "ЭлементЗаголовка", Истина);  
    КонецЕсли;    

    Адрес = ВернутьЗначениеПараметраНастройкиСКД(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, "Адрес");  
    Если ЗначениеЗаполнено(Адрес) Тогда   
        Область = СекцияЗаголовка.Область("R1C1");   

        Область.Шрифт = Новый Шрифт(Область.Шрифт, , 9);   
        Область.Текст = Адрес;   
        ДокументРезультат.Вывести(СекцияЗаголовка, 2, "ЭлементЗаголовка", Истина);  
    КонецЕсли;    

    Телефон = ВернутьЗначениеПараметраНастройкиСКД(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, "Телефон");   
    Если ЗначениеЗаполнено(Телефон) Тогда   
        Область = СекцияЗаголовка.Область("R1C1");   
        Область.Шрифт = Новый Шрифт(Область.Шрифт, , 9);   
        Область.Текст = Телефон;   
        ДокументРезультат.Вывести(СекцияЗаголовка, 2, "ЭлементЗаголовка", Истина);  
    КонецЕсли;     

    НомерКолонкиЛоготипа = ВернутьЗначениеПараметраНастройкиСКД(КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы, "НомерКолонкиЛоготипа", 4);
    Если ЗначениеЗаполнено(АдресЛоготипа) Тогда   
        Область = ДокументРезультат.Область(1, НомерКолонкиЛоготипа, ДокументРезультат.ВысотаТаблицы - 1, НомерКолонкиЛоготипа + 5);   
        ВывестиЛоготип(ДокументРезультат, АдресЛоготипа, Область);  
    КонецЕсли;    
    ДокументРезультат.ЗакончитьАвтогруппировкуСтрок(); 
КонецПроцедуры

Отметим, что в модуле формы также присутствует процедура ПриОткрытии, которая при наличии строки в настройке ПутьКЛоготипу, поместит соответствующую информацию во временное хранилище, это необходимо учитывать и при автоматическом формировании отчета. Также отметим что если отчет запускается на разных компьютерах под одним и темже пользователем, то при задании абсолютного пути (с указанием диска конкретного компьютера), возможны ошибки чтения логотипа, т.к. в этом случае реальный путь к логотипу может отличатся от сохраненного на другом компьютере.

В результате сформированный отчет может принять такой вид:

результат

Готовый отчет доступен к скачиванию. 

ЗЫ: При передаче больших логотипов может наблюдаться замедление вывода отчета.

PS: Существует еще одна модификация данного отчета Прайс лист с картинками для УТ11 (логотип, картинки товаров, свободные текстовые поля в заголовке, отбор по остаткам), правда без подробного описания процесса изменения... но там изменений минимум.

См. также

SALE! 15%

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 9435 руб.

29.10.2014    216743    657    527    

456

Прайсы Загрузка и выгрузка в Excel Пользователь Платформа 1С v8.3 Оперативный учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Внешние обработки для загрузки прайс-листов в формате Excel в конфигурации: Управление торговлей, редакция 11; Управление нашей фирмой, редакция 3.0; Бухгалтерия предприятия, редакция 3.0 без использования COM-объектов (установленного Excel)

7200 руб.

16.04.2020    31956    263    15    

63

Прайсы Загрузка и выгрузка в Excel Оптовая торговля WEB-интеграция Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Прайс-лист для программы 1С: Управление торговлей 11 и Управление торговлей для Беларуси 3, позволяющий: 1) Формировать прайс-лист с фотографиями; 2) Сохранить прайс-лист в Excel с формулами, подсчитывающими количество и сумму заказа; 3) Передать сформированный прайс-лист по каналу ftp на сайт; 4) Сохранить прайс-лист в формате CSV; 5) Загрузить сделанный по прайс-листу заказ обратно в программу.

6000 руб.

04.09.2014    122899    46    105    

53

Прайсы Загрузка и выгрузка в Excel Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Управленческий учет Абонемент ($m)

Прайс-лист (заказ) с выводом картинок, свободного остатка (общ. остаток - резерв), общ. остатка, резерва, штрихкодов, выбранных цен в разрезе организаций, складов, номенклатуры, характеристик. Есть выгрузка в excel с подстановкой формул (прайс-заказ), защита листа, вывод цены с учетом курса валюты. Работает на версиях 1.6.24, 1.6.25

2 стартмани

26.02.2021    7708    39    shtinalex    33    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. admrez 21 03.04.14 13:44 Сейчас в теме
Будет ли работать в 11.1.4.11 или в УТ 11.1.5.8 ? Мало стармани для эксперимента ((
2. mxm2 1268 03.04.14 14:13 Сейчас в теме
(1) admrez, не проверял, но Вы можете сами все сделать на основании стандартного прайса (ибо здесь все наглядно описано). Или можете скачать http://infostart.ru/public/178422 - тут есть версия на 100% работающая в УТ_11_1_4_11
3. welik 4 16.06.14 10:57 Сейчас в теме
Нет процедуры ВывестиЛоготип() и фyнкции ВернутьКоличествоКолонки()
Спасибо за труд, очень полезно.
4. Magomed-mallaev 02.02.15 00:17 Сейчас в теме
Ребята у меня версия УТ11.1.9.70 -
"Ошибку выдает Метод объекта не обнаружен (ПолучитьПараметр)"
5. Magomed-mallaev 02.02.15 00:18 Сейчас в теме
6. PYCTAM 15.06.15 10:58 Сейчас в теме
А как добавить чтобы отображалась группа номенклатуры?
7. meb 30.10.15 15:52 Сейчас в теме
Добрый день!Почему версия отчета 1.001? не получается загрузить отчет
8. kopeikin 16.11.15 16:42 Сейчас в теме
Скачал обработку. У меня выдает ошибку (Метод объекта не обнаружен (ПолучитьПараметр)). Дайте знать что за ошибка и как с ней бороться.
9. kopeikin 16.11.15 16:43 Сейчас в теме
У меня версия УТ 8.3.5.2237 для РБ.
10. Nikovit 24.12.15 13:39 Сейчас в теме
Тоже не работает УТ 11.1.10.185
11. MasteR87 12.01.16 22:42 Сейчас в теме
Кто нибудь решил проблему с ошибкой Метод объекта не обнаружен (ПолучитьПараметр)
Релиз Управление торговлей, редакция 11.1 (11.1.10.199), Отпишитесь кто решил пожалуйста
user816845; vvvalera; Desmondoff; Nikovit; Pyzuriaka; +5 Ответить
Оставьте свое сообщение