Имя: Пароль:
1C
1C 7.7
v7: Артикул + остатки + цена опт + цена розница
,
0 Козаностра
 
20.02.15
11:12
- Идентификатор    "Конфигурация "Бухгалтерия+Торговля+Склад+Зарплата+ Кадры" для Украины"

- Комментарий    "7.70.009"

Кто подскажет как сделать вывод прайс листа вида Артикул + остатки + цена опт + цена розница. Возможно уже есть готовые решения.
Буду признателен за помощь и наводки.
1 VladZ
 
20.02.15
11:14
Заходишь в отчет "Прайс-лист". И смотришь, чего не хватает.
2 Козаностра
 
20.02.15
11:52
Вы меня извините если я туплю, я зелёный совсем в 1с, не хватает остатков, каких туда добавить?))

http://firepic.org/images/2015-02/20/wuqk75zd06ku.jpg
3 Ёпрст
 
20.02.15
12:12
(2) посмотреть, на что влияет галка "не включать отсутствующие" и из этого запроса поиметь останки
4 Козаностра
 
20.02.15
12:29
Не включает товары которых нет, ( не формирует их в прайс ) остатки от этого показываться не стали
5 Ёпрст
 
20.02.15
12:34
(4) ё..
открой модуль формы отчета, который твой прайс выводит, там ищи по тексту, где твоя "галка" участвует, там будет запрос на получение останков, из него получишь свои останки, добавишь поле в макет и выведешь.. усё.
6 VladZ
 
20.02.15
13:57
(2)  Хм... Кто, интересно, делает конфы для Украины... Вижу уже вторую конфу, в которой интерфейс сделан в стиле "студенты делали".
7 Maniac
 
20.02.15
13:59
Это 7.7

На восьмерку переходите.
8 Козаностра
 
20.02.15
14:56
Просьба, мне как зелёному валенку объяснять.
9 Козаностра
 
20.02.15
14:58
Я вообще не в курсе откуда она что и кто там делал, я веб мастер по профессии ))
10 Козаностра
 
20.02.15
17:25
Ёпрст - вы имели ввиду здесь?

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

Перем СписокПодбора,СправочникПодбора;
// СписокПодбора - список, в который отбираются элементы
//                            (используется для множественных фильтров)
// СправочникПодбора - строка - идентификатор справочника, из которого осуществляется отбор
//                            (используется для множественных фильтров)            

Перем СписокТоваров;    // список товаров для фильтрации

Перем ВидСправочника;   // Вид печатаемого справочника (Номенклатура или прайс-лист)
                        // Определяется параметром. По умолчанию - прайс  
Перем ЗаголовокТаблицы; // Заголовок печатной формы

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

// ===============================
// ПРОЦЕДУРЫ И ФУНКЦИИ, ВЫЗЫВАЕМЫЕ ИЗ ФОРМУЛ ЭЛЕМЕНТОВ ДИАЛОГА

// ===============================
// Название: Сдвиг
// Параметры:
//  Режим - строка: "Вверх" или "Вниз",- определяющая направление сдвига
//     Список - список, в котором происходит сдвиг     
// Возвращаемое значение:
// НЕТ
// Вызывается из формул элементов диалога:
//   кнопки со стрелками вверх и вниз
// Наименование,.
// Описание:
//    сдвигает текущую позицию в списке на 1 элемент вниз или вверх
//
Процедура Сдвиг(Режим,Список)
    Перем ТекущПредставление;
    Перем СледующПредставление;
    
    ТекущаяСтрока=Список.ТекущаяСтрока();
    Если ТекущаяСтрока<=0 Тогда
        Возврат;
    КонецЕсли;    
    
    Если Режим="Вверх" Тогда
        Если ТекущаяСтрока=1 Тогда
            СледующСтрока=Список.РазмерСписка();
        Иначе
            СледующСтрока=ТекущаяСтрока-1;
        КонецЕсли;
    ИначеЕсли Режим="Вниз" Тогда
        Если ТекущаяСтрока=Список.РазмерСписка() Тогда
            СледующСтрока=1;
        Иначе
            СледующСтрока=ТекущаяСтрока+1;
        КонецЕсли;
    Иначе
        Возврат;
    КонецЕсли;
    
    ТекущЗначение=Список.ПолучитьЗначение(ТекущаяСтрока,ТекущПредставление);
    СледующЗначение=Список.ПолучитьЗначение(СледующСтрока,СледующПредставление);
    
    Список.УстановитьЗначение(СледующСтрока,ТекущЗначение,ТекущПредставление,1);
    Список.УстановитьЗначение(ТекущаяСтрока,СледующЗначение,СледующПредставление,1);
    
    Список.ТекущаяСтрока(СледующСтрока);

КонецПроцедуры   // Сдвиг


// ===============================
// Название: РаботаСоСписком
// Параметры:
//     Режим - строка, принимающая 4 значения:
//        "Добавить"
//        "ДобавитьНесколько"
//         "Удалить"
//         "УдалитьВсе"
//    Список - список значений, в котором задается множественный фильтр
//    ТипСправочника - строка, содержащая идентификатор справочнника, по
//                        которому осуществляется мноджественный фильтр
// Возвращаемое значение:
// НЕТ
// Вызывается из формул элементов диалога:
//   кнопок работы с множественными фильтрами ("...",".....","X","XX")
// Наименование,.
// Описание:
// процедура предназначена для добавления и удаления элементов
// из множественных фильтров
Процедура РаботаСоСписком(Режим,Список,ТипСправочника)
    Перем ТекПоз;
    Перем ТекЭлемент;
    Перем Фрм;
                                    
    Если ТипСправочника = "Категории" Тогда
        ТипСправочника = "ВидыКатегории";
    КонецЕсли;    
    
    ТекПоз = Список.ТекущаяСтрока();
    Если ТекПоз>0 Тогда
        ТекЭлемент=Список.ПолучитьЗначение(ТекПоз);
    КонецЕсли;

    Если Режим="Добавить" Тогда        // добавляем в список один элемент
        СписокПодбора = Список;
        СправочникПодбора = ВРег(ТипСправочника);
        // открываем окно подбора
        ОткрытьПодбор("Справочник."+ТипСправочника,,Фрм,0,ТекЭлемент);
        Фрм.ВыборГруппы(1);

    ИначеЕсли Режим="ДобавитьНесколько" Тогда  // добавляем в список несколько элементов
        СписокПодбора = Список;
        СправочникПодбора = ВРег(ТипСправочника);
        // открываем окно подбора
        ОткрытьПодбор("Справочник."+ТипСправочника,,Фрм,1,ТекЭлемент);
        Фрм.ВыборГруппы(1);

    ИначеЕсли Режим="УдалитьВсе" Тогда    // удаляем все элементы из списка
        Список.УдалитьВсе();

    ИначеЕсли Режим="Удалить" Тогда    // удаляем из списка один элемент
        Если ТекПоз>0 Тогда
            Список.УдалитьЗначение(ТекПоз);
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры        // работа со списком
                          


// ===============================
// Название: Выполнить
// Параметры:                                            
// НЕТ
// Возвращаемое значение:
// НЕТ
// Вызывается из формул элементов диалога:
//  Кнопки "Печать"
// Описание:
//    выполняет печать прайс-листа
//
Процедура Печать()
    Перем СписокПозиций, СписокТоваров;
    
    СписокТоваров = СоздатьОбъект("СписокЗначений");
    СписокПозиций = СоздатьОбъект("СписокЗначений");
        
    НаложенФильтрПоТоварам=0;
    
        // накладываем множественный фильтр по товарам
    Если МФНоменклатура.РазмерСписка()<>0 Тогда
            
        Для Индекс=1 По МФНоменклатура.РазмерСписка() Цикл
            Позиция = МФНоменклатура.ПолучитьЗначение(Индекс);
            
            НоменкВложенаВДругую=0;
            Для Индекс2=1 По МФНоменклатура.РазмерСписка() Цикл
                Если Индекс2<>Индекс Тогда      
                    Позиция2 = МФНоменклатура.ПолучитьЗначение(Индекс2);
                    Если Позиция2.ЭтоГруппа()>0 Тогда
                        Если Позиция.ПринадлежитГруппе(Позиция2)>0 Тогда
                            НоменкВложенаВДругую=1;
                            Прервать;
                        КонецЕсли;    
                    КонецЕсли;    
                КонецЕсли;    
            КонецЦикла;    
            
            Если НоменкВложенаВДругую=1 Тогда
                Продолжить;
            КонецЕсли;        
            
            Если Позиция.ЭтоГруппа()>0 Тогда
                СпрПозиций = СоздатьОбъект("Справочник."+ВидСправочника);
                СпрПозиций.ИспользоватьРодителя(Позиция.ТекущийЭлемент());
                СпрПозиций.ВыбратьЭлементы(1);
                Пока СпрПозиций.ПолучитьЭлемент()>0 Цикл
                    Если СпрПозиций.ЭтоГруппа()=0 Тогда    
                        СписокПозиций.ДобавитьЗначение(СпрПозиций.ТекущийЭлемент());
                        Если Нрег(ВидСправочника) = "прайс_лист" Тогда
                            СписокТоваров.ДобавитьЗначение(СпрПозиций.Товар.ТекущийЭлемент());
                        Иначе
                            СписокТоваров.ДобавитьЗначение(СпрПозиций.ТекущийЭлемент());
                        КонецЕсли;                                                    
                    КонецЕсли;
                КонецЦикла;    
            Иначе
                СписокПозиций.ДобавитьЗначение(Позиция.ТекущийЭлемент());
                Если Нрег(ВидСправочника) = "прайс_лист" Тогда
                    СписокТоваров.ДобавитьЗначение(Позиция.Товар.ТекущийЭлемент());
                Иначе
                    СписокТоваров.ДобавитьЗначение(Позиция.ТекущийЭлемент());
                КонецЕсли;    
            КонецЕсли;                                                          
            
        КонецЦикла;    
        
        Если СписокПозиций.РазмерСписка()=0 Тогда
            Предупреждение("Список позиций пуст");
            Возврат;
        КонецЕсли;    
        
        НаложенФильтрПоТоварам=1;
    КонецЕсли;    
        
    
    // не включать отсутствующие
    Если ТолькоПрисутствующие<>0 Тогда
        
        ВремРегистры=СоздатьОбъект("Регистры");
        Рег=ВремРегистры.ОстаткиТоваров;
        Если РабочаяДата()<ПолучитьДатуТА() Тогда
            Рег.ВременныйРасчет();                            
            Если НаложенФильтрПоТоварам=1 Тогда
                Рег.УстановитьЗначениеФильтра("Товар",СписокТоваров,2);
            КонецЕсли;    
            Рег.УстановитьЗначениеФильтра("Фирма",ВыбФирма);
            ВремРегистры.РассчитатьРегистрыПО(РабочаяДата());
        КонецЕсли;
        
        Если НаложенФильтрПоТоварам=1 Тогда
            
            ЧислоТов = СписокПозиций.РазмерСписка();
            Для Индекс = 1 По ЧислоТов Цикл
                
                НеУдовлетвФильтру=0;
                Номенк = СписокТоваров.ПолучитьЗначение(ЧислоТов+1-Индекс);
                
                // накладываем фильтр по присутствию/отсутствию
                Если Номенк.ВидТМЦ<>Перечисление.ВидыТМЦ.Товар Тогда
                    НеУдовлетвФильтру=1;
                Иначе
                    Кол = ВремРегистры.ОстаткиТоваров.СводныйОстаток(ВыбФирма,Номенк,,,,"ОстатокТовара");
                    Если Кол<=0 Тогда
                        НеУдовлетвФильтру=1;
                    КонецЕсли;
                КонецЕсли;              
                
                Если НеУдовлетвФильтру=1 Тогда                    
                    СписокПозиций.УдалитьЗначение(ЧислоТов+1-Индекс);
                КонецЕсли;
            КонецЦикла;
            
        Иначе  
            
            СпрПозиций = СоздатьОбъект("Справочник."+ВидСправочника);
            СпрПозиций.ВыбратьЭлементы();
            Пока СпрПозиций.ПолучитьЭлемент()>0 Цикл
                Если СпрПозиций.ЭтоГруппа()=0 Тогда    
                    Если Нрег(ВидСправочника) = "прайс_лист" Тогда
                        Номенк = СпрПозиций.Товар.ТекущийЭлемент();
                    Иначе
                        Номенк = СпрПозиций.ТекущийЭлемент();
                    КонецЕсли;    
                
                    Если Номенк.ВидТМЦ=Перечисление.ВидыТМЦ.Товар Тогда
                        Кол = ВремРегистры.ОстаткиТоваров.СводныйОстаток(ВыбФирма,Номенк.ТекущийЭлемент(),,,,,"ОстатокТовара");
                        Если Кол>0 Тогда
                            СписокПозиций.ДобавитьЗначение(СпрПозиций.ТекущийЭлемент());
                        КонецЕсли;    
                    КонецЕсли;    
                КонецЕсли;
            КонецЦикла;    
            
        КонецЕсли;
        
        Если СписокПозиций.РазмерСписка()=0 Тогда
            Предупреждение("Список позиций пуст");
            Возврат;
        КонецЕсли;    
        
        НаложенФильтрПоТоварам=1;

    КонецЕсли;    
    
    Если МФКатНоменклатуры.РазмерСписка() > 0 Тогда
        
        ТекстЗапроса = "                    
            |Обрабатывать НеПомеченныеНаУдаление;
            |КатегорияПозиции = Справочник.КатегорииТоваров.ТекущийЭлемент;
            |Товар = Справочник.КатегорииТоваров.Владелец;
            |КатегорияТов = Справочник.КатегорииТоваров.Категория;                
            |Группировка Товар Без Групп;
            |Группировка КатегорияТов Без Групп;
            |Условие (КатегорияТов В МФКатНоменклатуры);
            |Условие (Товар В СписокТоваров);";
            
        // выполняем запрос
        Запрос = СоздатьОбъект("Запрос");
        Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
            Возврат;
        КонецЕсли;
                      
        СписокТоваров.УдалитьВсе();
        ЧислоКатегорийВСписке = МФКатНоменклатуры.РазмерСписка();
        
        // выгружаем все отобранные товары в список
        Запрос.ВНачалоВыборки();
        Пока Запрос.Группировка("Товар") = 1 Цикл
            Если Запрос.Товар.Выбран() = 1 Тогда                                  
                Если ТипМФКатНоменклатуры.ТекущаяСтрока() = 2 Тогда
                    // одновременно все категории должны быть в списке МФКатегории
                    
                    ПозицияСправочника = Запрос.Товар.ТекущийЭлемент();
                    
                    // ячитаем число категорий
                    ЧислоКатегорий = 0;
                    Пока Запрос.Группировка("КатегорияТов") = 1 Цикл
                        Если Запрос.КатегорияТов.Выбран() = 1 Тогда                                  
                            ЧислоКатегорий = ЧислоКатегорий + 1;
                        КонецЕсли;
                    КонецЦикла;
                    
                    // все категории будут тогда и только тогда, когда число отобранных
                    // категорий будет не меньше размера списка МФКатегории
                    Если ЧислоКатегорий >= ЧислоКатегорийВСписке Тогда
                        СписокТоваров.ДобавитьЗначение(ПозицияСправочника.ТекущийЭлемент());
                    КонецЕсли;    
                Иначе
                    СписокТоваров.ДобавитьЗначение(Запрос.Товар.ТекущийЭлемент());
                КонецЕсли;    
            КонецЕсли;
        КонецЦикла;
            
        Если НаложенФильтрПоТоварам = 1 Тогда
            
            РазмерСпискаПозиций = СписокПозиций.РазмерСписка();
            Для Индекс = 1 по РазмерСпискаПозиций Цикл
                Если СписокТоваров.Принадлежит(?(НРег(ВидСправочника) = "прайс_лист",
                                                СписокПозиций.ПолучитьЗначение(РазмерСпискаПозиций - Индекс + 1).Товар,
                                                СписокПозиций.ПолучитьЗначение(РазмерСпискаПозиций - Индекс + 1))) = 0 Тогда
                    СписокПозиций.УдалитьЗначение(РазмерСпискаПозиций - Индекс + 1);
                КонецЕсли;
            КонецЦикла;
            
        Иначе
            
            СпрПозиций = СоздатьОбъект("Справочник." + ВидСправочника);
            СпрПозиций.ВыбратьЭлементы();
            Пока СпрПозиций.ПолучитьЭлемент() = 1 Цикл
                Если СпрПозиций.ЭтоГруппа() = 0 Тогда    
                    Если СписокТоваров.Принадлежит(?(НРег(ВидСправочника) = "прайс_лист",
                                                    СпрПозиций.ТекущийЭлемент().Товар,
                                                    СпрПозиций.ТекущийЭлемент())) = 1 Тогда
                        СписокПозиций.ДобавитьЗначение(?(НРег(ВидСправочника) = "прайс_лист", СпрПозиций.ТекущийЭлемент(), СпрПозиций.Товар.ТекущийЭлемент()));
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;    
            
        КонецЕсли;
            
        Если СписокПозиций.РазмерСписка() = 0 Тогда
            Предупреждение("Список позиций пуст");
            Возврат;
        КонецЕсли;    
        
    КонецЕсли;
    
    // теперь отбираем позиции справочника
    Если Нрег(ВидСправочника) = "прайс_лист" Тогда
        ТекстЗапроса = "                    
            |Период С '"+Строка(Мин(РабочаяДата(),ПолучитьДатуТА()))+"' По '"+Строка(Мин(РабочаяДата(),ПолучитьДатуТА()))+"';
            |Позиция = Справочник.Прайс_лист.ТекущийЭлемент;
            |Товар = Справочник.Прайс_лист.Товар;
            |Группировка Позиция;
            |Условие (Позиция В СписокПозиций);
            |";
    ИначеЕсли Нрег(ВидСправочника) = "тмц" Тогда
        ТекстЗапроса = "                    
            |Период С '"+Строка(Мин(РабочаяДата(),ПолучитьДатуТА()))+"' По '"+Строка(Мин(РабочаяДата(),ПолучитьДатуТА()))+"';
            |Позиция = Справочник.ТМЦ.ТекущийЭлемент;
            |Товар = Справочник.ТМЦ.ТекущийЭлемент;
            |Группировка Позиция;
            |Условие (Позиция В СписокПозиций);
            |";
    КонецЕсли;
        
    // выполняем запрос
    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
        Возврат;
    КонецЕсли;
              
    //  Создание Таблицы для выходного отчета
    Таб=СоздатьОбъект("Таблица");
    
    Ном=0;
    
    Если (ЕдиницаПечати.ТекущаяСтрока()<>1)И(ЕдиницаПечати.ТекущаяСтрока()<>2) Тогда
        ПечатьВФиксЕдиницах = 0;
    Иначе
        ПечатьВФиксЕдиницах = 1;
    КонецЕсли;              
    
    Если ВалютаПечати.Выбран()=0 Тогда
        ПечатьВФиксВалюте = 0;
        Заг="";
    Иначе                      
        ПечатьВФиксВалюте = 1;
        Валюта = ВалютаПечати;
        Заг="Цены указаны в "+СокрЛП(Валюта.Кратко);
    КонецЕсли;    
    
    Таб.ВывестиСекцию("Отчет");
    Таб.ВывестиСекцию("Шапка|НазваниеПозиции");
    Для Индекс = 1 По МФКатЦены.РазмерСписка() Цикл
        ТипЦены = МФКатЦены.ПолучитьЗначение(Индекс);
        Таб.ПрисоединитьСекцию("Шапка|Цена");
    КонецЦикла;    
            
    СписокГрупп = СоздатьОбъект("СписокЗначений");
    
    Цена = СоздатьОбъект("Справочник.Цены");
    Цена.ИспользоватьДату(РабочаяДата());
    
    Пока Запрос.Группировка("Позиция")>0 Цикл
        Если Запрос.Позиция.Выбран()=0 Тогда
            Продолжить;
        КонецЕсли;      
            
        глОживить(1);
        
        Если Запрос.Позиция.ЭтоГруппа()=1 тогда
            СписокГрупп.ДобавитьЗначение(Запрос.Позиция.ТекущийЭлемент());            
            Продолжить;
        КонецЕсли;    
        
        Цена.ИспользоватьВладельца(Запрос.Товар.ТекущийЭлемент());
        
        Если Нрег(ВидСправочника) = "прайс_лист" Тогда
            НашлиНенулевуюЦену=0;
            
            Для Индекс = 1 По МФКатЦены.РазмерСписка() Цикл  
                ТипЦены = МФКатЦены.ПолучитьЗначение(Индекс).ТекущийЭлемент();
                Если Цена.НайтиПоРеквизиту("КатегорияЦены",ТипЦены,0)<=0 Тогда
                    Продолжить;
                КонецЕсли;    
                Если Цена.Цена=0 Тогда
                    Продолжить;
                КонецЕсли;      
                НашлиНенулевуюЦену=1;
                Прервать;
            КонецЦикла;        
            
            Если НашлиНенулевуюЦену=0 Тогда
                Продолжить;
            КонецЕсли;    
        КонецЕсли;    
            
        Пока СписокГрупп.РазмерСписка()>0 Цикл
            Гр = СписокГрупп.ПолучитьЗначение(1);
            Если Запрос.Позиция.ПринадлежитГруппе(Гр)>0 Тогда
                Если Гр.Уровень()=1 Тогда
                    Таб.ВывестиСекцию("Группа1|НазваниеПозиции");
                ИначеЕсли Гр.Уровень()=2 Тогда
                    Таб.ВывестиСекцию("Группа2|НазваниеПозиции");
                Иначе
                    Таб.ВывестиСекцию("Группа3|НазваниеПозиции");
                КонецЕсли;  
            КонецЕсли;    
            СписокГрупп.УдалитьЗначение(1);
        КонецЦикла;
                          
        Если ПечатьВФиксЕдиницах=1 Тогда
            Если ЕдиницаПечати.ТекущаяСтрока()=1 Тогда    
                Единица = Запрос.Товар.ЕдиницаПоУмолчанию;
            ИначеЕсли ЕдиницаПечати.ТекущаяСтрока()=2 Тогда    
                Единица = глВернутьБазовуюЕдиницуТовара(Запрос.Товар.ТекущийЭлемент());
            КонецЕсли;
        КонецЕсли;
            
        Ном=Ном+1;
        Таб.ВывестиСекцию("Товар|НазваниеПозиции");
        
        Для Индекс = 1 По МФКатЦены.РазмерСписка() Цикл  
            ТипЦены = МФКатЦены.ПолучитьЗначение(Индекс).ТекущийЭлемент();
            Если Цена.НайтиПоРеквизиту("КатегорияЦены",ТипЦены,0)<=0 Тогда
                ПечЦена = "";
            Иначе
                
                Если ПечатьВФиксВалюте=0 Тогда
                    Валюта = Цена.Валюта;
                КонецЕсли;
                
                Если ПечатьВФиксЕдиницах=0 Тогда
                    Единица = Цена.Единица;
                КонецЕсли;    
                
                ЧЦена = Цена.Цена;
                Если Единица<>Цена.Единица Тогда
                    ЧЦена = ?(Цена.Единица.Коэффициент = 0,ЧЦена * Единица.Коэффициент / 1,ЧЦена * Единица.Коэффициент / Цена.Единица.Коэффициент);
                КонецЕсли;    
                ЧЦена = глПересчет(ЧЦена,Цена.Валюта,РабочаяДата(),Валюта,РабочаяДата(),);
                ПечЦена = СокрЛП(глФРМ(ЧЦена,Валюта,?(ПечатьВФиксВалюте=0,1,0)))+?(ПечатьВФиксЕдиницах=0," / "+СокрЛП(Строка(Единица)),"");
            КонецЕсли;    
            
            Таб.ПрисоединитьСекцию("Товар|Цена");
                    
        КонецЦикла;    
        
    КонецЦикла;    
    
    //Вызов выходного отчета в окно просмотра и редактирования.
    Таб.ПовторятьПриПечатиСтроки(1,5);
    Таб.Опции(0,0,5,0,ПарСтрСпр);
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Показать(ВидСправочника,"");
        
КонецПроцедуры
                                                                                                                                                            

// ===============================
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ

// ===============================
Процедура ПриОткрытии() // Предопределенная процедура
    // Определяем какой спрвочник печатается
    Если ПустоеЗначение(Форма.Параметр) = 1 Тогда
        ВидСправочника = "Прайс_лист";
    Иначе
        ВидСправочника = СокрЛП(Форма.Параметр);
    КонецЕсли;