По теме из базы знаний
- Загрузка изображений номенклатуры с диска по артикулу для УТ 11, ERP 2, КА 2.
- Загрузка изображений по коду, артикулу, наименованию или произвольному дополнительному реквизиту
- Загрузка изображений в номенклатуру - Управление торговлей 11
- Умная Загрузка Номенклатуры - с автопоиском реквизитов из Excel, загрузка изображений и документов
- Загрузка изображений номенклатуры (для 1С:Розница)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если "в первый раз увидел", то лучше пригласить специалиста. Если хочется самому поразбираться, то читать, например, тут: http://infostart.ru/public/17125/
Перем ТекСтрокаВТаблице; // текущая строка в таблице значений МФ
Перем гУсл[10];
// используются для стандартного механизма кнопок "Обновить" и "Настройка"
Перем ИсхТабл;
Перем Обновить;
Перем Расшифровка;
Перем ТипЦены;
//******************************************************************************
// ВыбратьПоФильтру()
//
// Параметры:
// Нет
//
// Описание:
// Открывает обработку отбора элементов по произвольному фильтру
//
Процедура ВыбратьПоФильтру()
Перем ВидЗначенияПодбора;
ВидЗначенияПодбора=СокрЛП(ТаблицаМФ.Вид);
Если ПустоеЗначение(ВидЗначенияПодбора)=1 Тогда
Возврат;
КонецЕсли;
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение("", "ИмяВызвавшейФормы");
СписокПараметров.ДобавитьЗначение(ТаблицаМФ.Тип, "Тип");
СписокПараметров.ДобавитьЗначение(ВидЗначенияПодбора,"Вид");
СписокПараметров.ДобавитьЗначение(СписокЭлементовМФ, "Объекты");
ТаблицаМФ.ФлВкл=2;
ОткрытьФорму("Обработка.ПодборОбъектов#",СписокПараметров);
КонецПроцедуры // ВыбратьПоФильтру
//******************************************************************************
// ПерерисовкаНазванийЗакладок
//
// Параметры:
// Нет
//
// Описание:
// Добавляет "(!)" в заголовок закладки с множественным фильтром, когда этот фильтр задан
//
Функция ПерерисовкаНазванийЗакладок()
Врем = Форма.Закладки.ПолучитьЗначение(2);
Форма.Закладки.УстановитьЗначение(2, Врем,?(глМножественныйФильтрЗадан(ТаблицаМФ)=1,"(!) ","")+"Множественный фильтр");
КонецФункции // ПерерисовкаНазванийЗакладок
//******************************************************************************
// РасшифровкаОбновить(Обновить)
//
// Параметры:
// Обновить = 1 - нажата кнопка "Обновить"
// 2 - нажата кнопка "Настройка"
//
// Возвращаемое значение:
// Расшифровка (список значений)
//
// Вызывается из формул элементов диалога:
// из таблицы, кнопки "Обновить" и "Настройка"
//
// Описание:
// функция для стандартного механизма кнопок ""Обновить" и "Настройка""
// помещает значение параметра в список Расшифровка и возвращает этот список
//
Функция РасшифровкаОбновить(Обновить)
Расшифровка.Установить("Обновить", Обновить);
Возврат Расшифровка;
КонецФункции //РасшифровкаОбновить()
//******************************************************************************
// ФильтрПоПеременнойЗапроса(ТекстЗапроса,Загол,Поле,НазвПоля,НазвПеремЗапроса)
//
// Параметры:
// ТекстЗапроса - переменная, в которой содержится текст формируемого запроса
// ТекстЗаголовка - переменная, в которой содержится заголовок отчета
// ПолеЕФ - Значение элемента диалога, в котором вводится значение фильтра
// ИмяПоляЕФ - Название элемента диалога, в котором вводится значение фильтра
// ИмяПеремЗапроса - название переменной запроса, к которой применить фильтр
//
// Возвращаемое значение:
// Нет
//
// Описание:
// Дополняет текст запроса и заголовок отчета по переданному фильтру.
//
Функция ФильтрПоПеременнойЗапроса(ИмяПеремЗапроса,ПолеЕФ,ИмяПоляЕФ,ТекстЗапроса,ТекстЗаголовка,ВидСправочникаСвойства="")
Перем ПолеМФ, ИмяПоляМФ, ВремТипМФ;
Перем ПолеМФСвойств, ИмяПоляМФСвойств, ТипМФСвойств;
ТаблицаМФ.ВыбратьСтроки();
Пока ТаблицаМФ.ПолучитьСтроку()=1 Цикл
Если (ТаблицаМФ.СписокЭлементов.РазмерСписка()>0) и
(ТаблицаМФ.ИмяПеременной=ИмяПеремЗапроса) и
(ТаблицаМФ.ФлВкл=2) Тогда
Номер = ТаблицаМФ.НомерСтроки;
Если (ТаблицаМФ.Вид<>"ЗначенияСвойств") Тогда
гУсл[Номер] = ТаблицаМФ.СписокЭлементов;
ПолеМФ = гУсл[Номер];
ИмяПоляМФ = "гУсл["+СокрЛП(Номер)+"]";
ВремТипМФ = ТаблицаМФ.ТипМФ;
Иначе // по свойствам
гУсл[Номер] = СоздатьОбъект("СписокЗначений");
ТаблицаМФ.СписокЭлементов.Выгрузить(гУсл[Номер]);
ПолеМФСвойств = гУсл[Номер];
ИмяПоляМФСвойств = "гУсл["+СокрЛП(Номер)+"]";
ТипМФСвойств = ТаблицаМФ.ТипМФ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Рез1 = глФильтрПоСправочнику(ПолеЕФ,ИмяПоляЕФ,
ПолеМФ,ИмяПоляМФ,ВремТипМФ,
ТекстЗапроса,ТекстЗаголовка,
ИмяПеремЗапроса);
Рез2 = глФильтрПоСвойствам(ВидСправочникаСвойства,
ПолеМФСвойств, ИмяПоляМФСвойств, ТипМФСвойств,
ТекстЗапроса, ТекстЗаголовка, ИмяПеремЗапроса);
Возврат (Рез1*Рез2); // если хоть один = 0 - плохо
КонецФункции // ФильтрПоПеременнойЗапроса()
//******************************************************************************
// Выполнить()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Описание:
//
Процедура Сформировать(Закрывать=0)
Если (ТипЗначенияСтр(ИсхТабл) <> "Таблица") ИЛИ (Обновить = 0) Тогда
ИсхТабл = СоздатьОбъект("Таблица");
Иначе
ИсхТабл.Очистить();
КонецЕсли;
ИсхТабл.ИсходнаяТаблица( "Таблица" );
Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.Установить("Отчет", ?(ПустаяСтрока(РасположениеФайла()) = 1, "ПечатьПрайса", РасположениеФайла()));
// все настройки помещаем в список
Расшифровка.Установить("ДатаОтчета", ДатаОтчета);
Расшифровка.Установить("ПоНаличию" , ПоНаличию);
Расшифровка.Установить("ВидРазделителя", ВидРазделителя);
Расшифровка.Установить("ВыбРазделитель1", ВыбРазделитель1);
Расшифровка.Установить("ВыбРазделитель2", ВыбРазделитель2);
Расшифровка.Установить("ВыбРазделитель3", ВыбРазделитель3);
Расшифровка.Установить("ВыбТМЦ", ВыбТМЦ);
Расшифровка.Установить("ТипыЦен", ЗначениеВстрокуВнутр(ТипыЦен));
Расшифровка.Установить("ВариантВключенияВпрайс", ВариантВключенияВпрайс);
глПриСменеСтрокиТаблицыМФ(1,ТекСтрокаВТаблице,Контекст); // записываем изменения если они были
// запомним МФ только если он задан
Если глМножественныйФильтрЗадан(ТаблицаМФ) = 1 Тогда
Расшифровка.Установить("ТаблицаМФ", ТаблицаМФ);
КонецЕсли;
// Заголовок отчета
ИсхТабл.ВывестиСекцию("Кнопки");
НачПовтСекц = ИсхТабл.ВысотаСекции("Кнопки");
ИсхТабл.ВывестиСекцию("Заголовок");
НачПовтСекц = НачПовтСекц + ИсхТабл.ВысотаСекции("Заголовок");
ИсхТабл.ВывестиСекцию("ШапкаТаблицы|Название");
КонПовтСекции = НачПовтСекц + ИсхТабл.ВысотаСекции("ШапкаТаблицы");
ИсхТабл.ПовторятьПриПечатиСтроки(НачПовтСекц + 1, КонПовтСекции);
// Присоединим заголовку названия цен
Для Счетчик=1 По ТипыЦен.РазмерСписка() Цикл
Если ТипыЦен.Пометка(Счетчик) = 1 Тогда
ТекТипЦены = ТипыЦен.ПолучитьЗначение(Счетчик);
ИсхТабл.ПрисоединитьСекцию("ШапкаТаблицы|Цена");
КонецЕсли;
КонецЦикла;
Если ПоНаличию = 1 Тогда
// получим остатки номенклатуры
РегОстатки = СоздатьОбъект("Регистр.ОстаткиТМЦ");
Объект = "";
ФирмаДляОстатковТМЦ = "";
Если ВидРазделителя = 2 Тогда
ФирмаДляОстатковТМЦ = ВыбРазделитель1;
ИначеЕсли ВидРазделителя = 3 Тогда
Объект = ВыбРазделитель2;
ИмяОбъекта = "ЮрЛицо";
ИначеЕсли ВидРазделителя = 4 Тогда
Объект = ВыбРазделитель3;
ИмяОбъекта = "УпрАналитика";
КонецЕсли;
Если ПустоеЗначение(Объект) = 0 Тогда // Надо заполнить список фирм
СпрФирм = СоздатьОбъект("Справочник.Фирмы");
ФирмаДляОстатковТМЦ = СоздатьОбъект("СписокЗначений");
СпрФирм.ВыбратьЭлементы();
Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл
Если СпрФирм.ПолучитьАтрибут(ИмяОбъекта)= Объект Тогда
ФирмаДляОстатковТМЦ.ДобавитьЗначение(СпрФирм.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
// Если нет ни одной фирмы с таким лицом, то отбирать нечего
Если ФирмаДляОстатковТМЦ.РазмерСписка() = 0 Тогда
// Если нет ни одной фирмы с таким лицом, то отбирать нечего
Предупреждение("Нет ни одной фирмы со значением """ + Объект.ПредставлениеВида() + """ равным """ +
СокрЛП(Объект) + """.",60);
Форма.Активизировать("ВыбРазделитель"+ СокрЛП(ВидРазделителя - 1),1);
Возврат;
КонецЕсли;
КонецЕсли;
Если ПустоеЗначение(ФирмаДляОстатковТМЦ) = 0 Тогда
РегОстатки.УстановитьЗначениеФильтра("Фирма", ФирмаДляОстатковТМЦ, 2);
КонецЕсли;
СписокНоменклатуры = СоздатьОбъект("СписокЗначений");
РегОстатки.ВыбратьИтоги();
Пока РегОстатки.ПолучитьИтог() = 1 Цикл
Если РегОстатки.Количество > 0 Тогда
СписокНоменклатуры.ДобавитьЗначение(РегОстатки.Номенклатура);
КонецЕсли;
КонецЦикла;
Если СписокНоменклатуры.РазмерСписка() = 0 Тогда
Предупреждение("Заданным условиям фильтра не удовлетворяет ни одна позиция номенклатуры.",60);
Возврат;
КонецЕсли;
КонецЕсли;
ТекстЗапроса = "//{{ЗАПРОС(ОтборЦен)
|Период с ДатаОтчета по ДатаОтчета;
|Номенклатура = Справочник.Цены.Владелец;
|Артикул = Справочник.Цены.Владелец.Артикул;
|Вес = Справочник.Цены.Владелец.РеквВесБазовой;
|Тип = Справочник.Цены.ТипЦен;
|Цена = Справочник.Цены.Цена;
|Единица = Справочник.Цены.Единица;
|Функция ЦенаСумма = Сумма(Цена);
|Группировка Номенклатура Упорядочить по Номенклатура.Наименование;
|Группировка Тип;
|"//}}ЗАПРОС
;
Если ПоНаличию = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "Условие(Номенклатура в СписокНоменклатуры);"
КонецЕсли;
// Добавим отбор по флагу включения в прайс
Если ВариантВключенияВпрайс > 1 Тогда
Если ВариантВключенияВпрайс = 2 Тогда
ТекстЗапроса = ТекстЗапроса + "Условие ( Номенклатура.НеВключатьВпрайс = 0);";
Иначе
ТекстЗапроса = ТекстЗапроса + "Условие ( Номенклатура.НеВключатьВпрайс = 1);";
КонецЕсли;
КонецЕсли;
НетОш = 1; // нет ошибок при наложении фильтров
НетОш = НетОш * ФильтрПоПеременнойЗапроса("Номенклатура", ВыбТМЦ, "ВыбТМЦ", ТекстЗапроса, , "СвойстваНоменклатуры");
Если НетОш = 0 Тогда
Возврат;
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
ТаблицаЦен = СоздатьОбъект("ТаблицаЗначений");
ТаблицаЦен.НоваяКолонка("Артикул");
ТаблицаЦен.НоваяКолонка("Вес");
ТаблицаЦен.НоваяКолонка("Тип");
ТаблицаЦен.НоваяКолонка("Цена");
ТаблицаЦен.НоваяКолонка("Единица");
ТекущаяГруппа= ПолучитьПустоеЗначение("Справочник.Номенклатура");
Пока Запрос.Группировка("Номенклатура") = 1 Цикл
ТекЭлем = Запрос.Номенклатура;
Если ТекЭлем.ЭтоГруппа() = 0 Тогда
ТаблицаЦен.УдалитьСтроки();
Пока Запрос.Группировка("Тип") = 1 Цикл
Если Запрос.ЦенаСумма = 0 Тогда
Продолжить;
КонецЕсли;
ТаблицаЦен.НоваяСтрока();
ТаблицаЦен.Артикул = Запрос.Артикул;
ТаблицаЦен.Вес = Запрос.Вес;
ТаблицаЦен.Тип = Запрос.Тип;
ТаблицаЦен.Цена = Запрос.ЦенаСумма;
ТаблицаЦен.Единица = Запрос.Единица;
ТаблицаЦен.Вес = Запрос.Вес;
КонецЦикла;
Если ТаблицаЦен.КоличествоСтрок() = 0 Тогда
Продолжить;
КонецЕсли;
// Отделяем товары группы от товаров ее подгрупп
Если ПустоеЗначение(ТекущаяГруппа) = 0 Тогда
Если ТекЭлем.ПринадлежитГруппе(ТекущаяГруппа)= 0 Тогда
ТекущаяГруппа = ТекЭлем.Родитель;
// В качестве разделителя выводим название той-же группы более мелким уровнем
Наименование = ТекущаяГруппа.Наименование;
ИсхТабл.ВывестиСекцию("Группа" + ТекЭлем.Уровень() + "|Название");
Для Счетчик=1 По ТипыЦен.РазмерСписка() Цикл
Если ТипыЦен.Пометка(Счетчик) = 1 Тогда
ИсхТабл.ПрисоединитьСекцию("Группа" + ТекЭлем.Уровень() + "|Цена");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Наименование = ТекЭлем.Наименование;
ИсхТабл.ВывестиСекцию("Номенклатура|Название");
Для Счетчик=1 По ТипыЦен.РазмерСписка() Цикл
Если ТипыЦен.Пометка(Счетчик) = 1 Тогда
ТекТип = ТипыЦен.ПолучитьЗначение(Счетчик);
Если ТекТип.Рассчитывается = 1 Тогда
ИспТип = ТекТип.БазовыйТипЦен;
Иначе
ИспТип = ТекТип;
КонецЕсли;
// поищем тип в таблице
Поз = 0;
Если ТаблицаЦен.НайтиЗначение(ИспТип, Поз, "Тип") = 1 Тогда
ТаблицаЦен.ПолучитьСтрокуПоНомеру(Поз);
Артикул = ТаблицаЦен.Артикул;
Цена = ТаблицаЦен.Цена;
Единица = ТаблицаЦен.Единица;
Вес = ТаблицаЦен.Вес;
Если ТекТип.Рассчитывается = 1 Тогда
// нужно пересчитать цену
Цена = глПересчет(Цена, ИспТип.Валюта, ДатаОтчета, ТекТип.Валюта, ДатаОтчета);
Цена = глОкруглить(Цена * (100 + ТекТип.Процент) / 100, ТекТип.ПорядокОкругления);
КонецЕсли;
ПечАртикул = Артикул;
ПечВес = Вес;
ПечЦена = глФРМ(Цена, ТекТип.Валюта);
ПечЕдиница = Единица;
ПечВес = Вес;
Иначе
ПечЦена = "";
КонецЕсли;
ИсхТабл.ПрисоединитьСекцию("Номенклатура|Цена");
КонецЕсли;
КонецЦикла;
Иначе
Наименование = ТекЭлем.Наименование;
ИсхТабл.ВывестиСекцию("Группа" + ТекЭлем.Уровень() + "|Название");
Для Счетчик=1 По ТипыЦен.РазмерСписка() Цикл
Если ТипыЦен.Пометка(Счетчик) = 1 Тогда
ИсхТабл.ПрисоединитьСекцию("Группа" + ТекЭлем.Уровень() + "|Цена");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
// подвал отчета
ИсхТабл.ВывестиСекцию("Подвал|Название");
Для Счетчик=1 По ТипыЦен.РазмерСписка() Цикл
Если ТипыЦен.Пометка(Счетчик) = 1 Тогда
ИсхТабл.ПрисоединитьСекцию("Подвал|Цена");
КонецЕсли;
КонецЦикла;
// покажем таблицу
ИсхТабл.ОбластьПечати(3);
ИсхТабл.Опции(0,0,0,0,"ПечатьПрайса", "ПечатьПрайса");
ИсхТабл.ТолькоПросмотр(1);
ИсхТабл.Показать("Печать прайс-листа","");
Если Закрывать = 1 Тогда
СтрокаДействийФормы = "#Закрыть";
КонецЕсли;
КонецПроцедуры // Выполнить()
//******************************************************************************
// Сдвиг(Направление)
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Вызывается из формул диалога:
// по кнопкам со стрелочками "вверх" или "Вниз"
//
// Описание:
// Сдвигает текущую строку списка цен в заданном направлении.
//
Процедура Сдвиг(Направление)
ТекСтрока = ТипыЦен.ТекущаяСтрока();
Если ТекСтрока > 0 Тогда
ТипыЦен.СдвинутьЗначение(Направление, ТекСтрока);
КонецЕсли;
КонецПроцедуры // Сдвиг()
//******************************************************************************
// УправлениеДиалогом()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Вызывается из формул диалога:
// Флаг "ПоНаличию", переключатель "ВидРазделителя"
//
// Описание:
// Управление видимостью и доступностью элементов форм
//
Процедура УправлениеДиалогом()
ТекСтрока = Форма.Закладки.ТекущаяСтрока();
Если ТекСтрока = 1 Тогда
Если ПустоеЗначение(ВидРазделителя) = 1 Тогда
ВидРазделителя =1;
КонецЕсли;
Форма.ИспользоватьСлой(Форма.Закладки.ПолучитьЗначение(ТекСтрока) +
?(ВидРазделителя > 1, ",Разделитель"+СокрЛП(ВидРазделителя - 1),""));
Если ПоНаличию = 0 Тогда
// все связанное с фирмами недоступно
Форма.ВидРазделителя. Доступность(0);
Форма.ВыбРазделитель1.Доступность(0);
Форма.ВидРазделителя1.Доступность(0);
Форма.кнХРазделитель1.Доступность(0);
Форма.ВыбРазделитель2.Доступность(0);
Форма.ВидРазделителя2.Доступность(0);
Форма.кнХРазделитель2.Доступность(0);
Форма.ВыбРазделитель3.Доступность(0);
Форма.ВидРазделителя3.Доступность(0);
Форма.кнХРазделитель3.Доступность(0);
Иначе
Форма.ВидРазделителя. Доступность(1);
Форма.ВыбРазделитель1.Доступность(1);
Форма.ВидРазделителя1.Доступность(1);
Форма.кнХРазделитель1.Доступность(1);
Форма.ВыбРазделитель2.Доступность(1);
Форма.ВидРазделителя2.Доступность(1);
Форма.кнХРазделитель2.Доступность(1);
Форма.ВыбРазделитель3.Доступность(1);
Форма.ВидРазделителя3.Доступность(1);
Форма.кнХРазделитель3.Доступность(1);
КонецЕсли;
Иначе
Форма.ИспользоватьСлой(Форма.Закладки.ПолучитьЗначение(ТекСтрока));
КонецЕсли;
КонецПроцедуры // УправлениеДиалогом()
//******************************************************************************
// Предопределенная процедура
//
Процедура ВводНового()
УправлениеДиалогом();
ПерерисовкаНазванийЗакладок();
ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");
КонецПроцедуры // ВводНового()
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии(ФлагЧтенияНастройки)
Перем СписокПомеченных;
Если глФлагРасшифровки = 1 Тогда
Обновить = глОбновить;
// восстанавливаем настройки из списка
ДатаОтчета = глРасшифровка.Получить("ДатаОтчета");
ПоНаличию = глРасшифровка.Получить("ПоНаличию");
ВидРазделителя = глРасшифровка.Получить("ВидРазделителя");
ВыбРазделитель1 = глРасшифровка.Получить("ВыбРазделитель1");
ВыбРазделитель2 = глРасшифровка.Получить("ВыбРазделитель2");
ВыбРазделитель3 = глРасшифровка.Получить("ВыбРазделитель3");
ВыбТМЦ = глРасшифровка.Получить("ВыбТМЦ");
ВариантВключенияВпрайс = глРасшифровка.Получить("ВариантВключенияВпрайс");
ВремТипыЦен = ЗначениеИзСтрокиВнутр(глРасшифровка.Получить("ТипыЦен"));
Для Счетчик = 1 По ВремТипыЦен.РазмерСписка() Цикл
Поз = ТипыЦен.НайтиЗначение(ВремТипыЦен.ПолучитьЗначение(Счетчик));
Если Поз > 0 Тогда
ТипыЦен.Пометка(Поз, 1);
КонецЕсли;
КонецЦикла;
Если ТипЗначенияСтр(глРасшифровка.Получить("ТаблицаМФ"))="ТаблицаЗначений" Тогда
ТаблицаМФ.Загрузить(глРасшифровка.Получить("ТаблицаМФ"));
КонецЕсли;
Если Обновить <> 0 Тогда
ИсхТабл = глТаблица;
КонецЕсли;
Если Обновить <> 2 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Иначе
Обновить = 0;
Если ФлагЧтенияНастройки = 0 Тогда
// добавим пометки всем элементам
Для Счетчик = 1 По ТипыЦен.РазмерСписка() Цикл
ТипыЦен.Пометка(Счетчик, 1);
КонецЦикла;
КонецЕсли;
Если ПустоеЗначение(ДатаОтчета) = 1 Тогда
ДатаОтчета = РабочаяДата();
КонецЕсли;
Если ПустоеЗначение(ВариантВключенияВпрайс) = 1 Тогда
ВариантВключенияВпрайс = 1;
КонецЕсли;
КонецЕсли;
// установка видимости колонок ТЗ множественного фильтра
ТаблицаМФ.ВидимостьКолонки("Тип",0);
ТаблицаМФ.ВидимостьКолонки("Вид",0);
ТаблицаМФ.ВидимостьКолонки("СписокЭлементов",0);
ТаблицаМФ.ВидимостьКолонки("ТипМФ",0);
ТаблицаМФ.ВидимостьКолонки("ИмяПеременной",0);
ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");
УправлениеДиалогом();
ПерерисовкаНазванийЗакладок();
КонецПроцедуры // ПриОткрытии()
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриВыбореЗакладки(НомерЗакладки,ЗначениеЗакладки)
УправлениеДиалогом();
ПерерисовкаНазванийЗакладок();
КонецПроцедуры // ПриВыбореЗнакладки()
//******************************************************************************
// Предопределенная процедура
//
Процедура ОбработкаПодбора(Значение)
Если (СписокЭлементовМФ.НайтиЗначение(Значение)=0) Тогда
Представление=""+Значение;
Если ТипЗначенияСтр(Значение)="Справочник" Тогда
Если СокрЛП(Метаданные.Справочник(Значение.Вид()).Владелец) <> "Метаданные" Тогда
Представление=Представление+" ("+Значение.Владелец+")";
КонецЕсли;
КонецЕсли;
СписокЭлементовМФ.ДобавитьЗначение(Значение,Представление);
ТаблицаМФ.ФлВкл=2;
КонецЕсли;
КонецПроцедуры // ОбработкаПодбора
//******************************************************************************
// добавим закладки
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("Общий,Основной,Кнопки","Основная");
Форма.Закладки.ДобавитьЗначение("Общий,МФ,Кнопки","Множественный фильтр");
Форма.Закладки.ТекущаяСтрока(1);
// заполним список типов цен
СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
СпрТипыЦен.ВыбратьЭлементы();
Пока СпрТипыЦен.ПолучитьЭлемент() = 1 Цикл
ТипыЦен.ДобавитьЗначение(СпрТипыЦен.ТекущийЭлемент());
КонецЦикла;
// инициализация переменных множественного фильтра
ТипМФ.УдалитьВсе();
ТипМФ.ДобавитьЗначение("одно из");
ТипМФ.ДобавитьЗначение("все кроме");
ТаблицаМФ.УдалитьСтроки();
Пока ТаблицаМФ.КоличествоКолонок()>0 Цикл
ТаблицаМФ.УдалитьКолонку(1);
КонецЦикла;
ТаблицаМФ.НоваяКолонка("Тип");
ТаблицаМФ.НоваяКолонка("Вид");
ТаблицаМФ.НоваяКолонка("ИмяПеременной");
ТаблицаМФ.НоваяКолонка("СписокЭлементов"); // список элементов, по которым производим фильтрацию
ТаблицаМФ.НоваяКолонка("ТипМФ"); // текущая строка списка ТипМФ
ТаблицаМФ.НоваяКолонка("ФлВкл","Число",1,,"Вкл",5,,); // фильтр включен ("1" или "0")
ТаблицаМФ.НоваяКолонка("Представление",,,,"Вид фильтра:");
ТаблицаМФ.ВыводитьПиктограммы("ФлВкл");
// тип вид переменная название
глДобавитьВТаблицуМФ(ТаблицаМФ,"Справочник","Номенклатура", "Номенклатура", "По номенклатуре");
глДобавитьВТаблицуМФ(ТаблицаМФ,"Справочник","ЗначенияСвойств", "Номенклатура", "По свойствам номенклатуры");
ТекСтрокаВТаблице="";
Показать
А можете подсказать в каком направлении копать, чтобы сделать выгрузку картинок в прайс? название файла и изображение интересует...
Прайс через модуль формируеться.. мне бы пример кода как сделать запрос и как включить картинку в таблицу
Прайс через модуль формируеться.. мне бы пример кода как сделать запрос и как включить картинку в таблицу
А поиском пользоваться умеем? Или не только 1С, но и интернет "в глаза только первый раз увидел" ?
Тема-то давно избитая и решенная в разных видах.
Например, в гугле по запросу "1С 7.7 печать прайса с картинками" первая же ссылка "Обработка для ТиС и Комплексной 7.7. Печать прайса с картинками"http://infostart.ru/public/69756/
Тема-то давно избитая и решенная в разных видах.
Например, в гугле по запросу "1С 7.7 печать прайса с картинками" первая же ссылка "Обработка для ТиС и Комплексной 7.7. Печать прайса с картинками"
вот еще мелкая моя поделка (я этих привязок картинок ктоварам и манипуляций ими написал столько что тошнит уже)
http://infostart.ru/public/15239/
Вплоть до подбора товаров в документы по каталогу картинок (вместо списка номенклатуры) - горят картинки, двигаемся по ним, мышкой или энтером, выбираем
Вплоть до подбора товаров в документы по каталогу картинок (вместо списка номенклатуры) - горят картинки, двигаемся по ним, мышкой или энтером, выбираем
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот