7.7 Как добавить код номенклатуры в форму печати каталога товаров

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем mass, 10 сен 2014.

  1. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    upload_2014-9-10_18-17-57.png

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

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

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

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

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

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

    //******************************************************************************
    // Название: Сдвиг
    // Параметры:
    // Режим - строка: "Вверх" или "Вниз",- определяющая направление сдвига
    // Список - список, в котором происходит сдвиг
    // Возвращаемое значение:
    // НЕТ
    // Вызывается из формул элементов диалога:
    // кнопки со стрелками вверх и вниз
    // Наименование,.
    // Описание:
    // сдвигает текущую позицию в списке на 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 Тогда
    ВидСправочника = "Прайс_лист";
    Иначе
    ВидСправочника = СокрЛП(Форма.Параметр);
    КонецЕсли;

    Если Нрег(ВидСправочника) = "прайс_лист" Тогда
    Форма.ПозицииТекст.Заголовок("Позиции и группы прайс-листа:");
    ЗаголовокТаблицы = "Прайс-лист";
    Форма.Заголовок("Печать прайс-листа");
    ИначеЕсли Нрег(ВидСправочника) = "номенклатура" Тогда
    Форма.ПозицииТекст.Заголовок("Позиции и группы номенклатуры:");
    ЗаголовокТаблицы = "Каталог товаров";
    Форма.Заголовок("Печать каталога товаров");
    Иначе
    Предупреждение("Обработка вызвана с неверным параметром.");
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;

    КонецПроцедуры

    Процедура ОбработкаПодбора(Значение) // Предопределенная процедура
    Перем ПредставлениеЗначения;

    Если (ВРег(Значение.Вид())=СправочникПодбора)И(СписокПодбора.НайтиЗначение(Значение)=0) Тогда
    ПредставлениеЗначения = Строка(Значение);
    Если СправочникПодбора="ПРАЙС_ЛИСТ" Тогда
    Если (Значение.ЭтоГруппа()=0)И(Значение.Товар.Выбран()>0) Тогда
    ПредставлениеЗначения = Строка(Значение.Товар);
    КонецЕсли;
    КонецЕсли;
    СписокПодбора.ДобавитьЗначение(Значение,ПредставлениеЗначения);
    СписокПодбора.ТекущаяСтрока(СписокПодбора.РазмерСписка());
    КонецЕсли;
    КонецПроцедуры // ОбработкаПодбора


    //******************************************************************************
    // ТЕЛО МОДУЛЯ

    ЕдиницаПечати.УдалитьВсе();
    ЕдиницаПечати.ДобавитьЗначение("по умолчанию"); // 1
    ЕдиницаПечати.ДобавитьЗначение("базовая"); // 2
    ЕдиницаПечати.ДобавитьЗначение("задания цен"); // 3
    ЕдиницаПечати.ТекущаяСтрока(1);

    ТипМФКатНоменклатуры.УдалитьВсе();
    ТипМФКатНоменклатуры.ДобавитьЗначение("одна из");
    ТипМФКатНоменклатуры.ДобавитьЗначение("одновременно все");
    ТипМФКатНоменклатуры.ТекущаяСтрока(1);

    МФКатЦены.УдалитьВсе();
    ВсеЦены = СоздатьОбъект("Справочник.КатегорииЦен");
    ВсеЦены.ВыбратьЭлементы();
    Пока ВсеЦены.ПолучитьЭлемент()>0 Цикл
    МФКатЦены.ДобавитьЗначение(ВсеЦены.ТекущийЭлемент());
    КонецЦикла;
    upload_2014-9-10_18-17-57.png
  2. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    Код:
    КодТовара = Запрос.Товар.Код;
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Хорошо что полный текст глобального модуля не выложил автор........
  4. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    да там фигня же :D подумаешь несколько тысяч строчек кода :D:D:D
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Угу.. И как после этог воспринимать сообщение... Между прочим, попытки выложить текст на пару сотен строк уже видел на данном сайте.......
  6. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.431
    Симпатии:
    372
    Баллы:
    104
    подикась ещё и без тегов и спойлера? :D
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104

Поделиться этой страницей