8.х Залежалый товар в СКД Розница 1.0.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Seva, 7 сен 2013.

  1. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Нужно вывести товар в анализе по остаткам подсветить товар который лежит на складе больше 4 мес каким нибудь цветом.
    Конфа розница 1.0 переписанная кучей программистов, есть учет партий на складах.
    Я вывел отчет по остаткам на складах товар, добавил туда партии все есть, но вот как в скд добавить параметр или условие чтобы посветить к примеру красным никак не соображу.
    Подскажите как это можно реализовать в скд 8.1?
  2. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    сделал как на рисунке теперь выводятся товары которые поступили после 15.08
    в отчете вот такой вид
    Веб-камера A4Tech PK-5G USB 2.0
    Поступление товаров ЦУ000001103 от 21.08.2013 10:42:25
    Веб-камера A4Tech PK-635G
    Поступление товаров ЦУ000001103 от 22.08.2013 11:12:11
    как мне первую строку вывести красным?

    Вложения:

  3. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    как вообще сделать условие "Если ДокПоступления.Дата > на 4 месяца ТекущаяДата() Тогда шрифт и т.д.?
  4. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Нашел - условное оформление. Теперь другая проблема не могу выбрать только 1 дату последнюю.
    пробовал максимум не работает все равно выводит все даты товара
    Nokia 1280 Black 7
    28.12.2012 16:26:08 1
    28.12.2012 15:58:38 1
    25.12.2012 12:24:35 4
    14.12.2012 11:41:17 1

    О великие гуру отзовитесь пожалуйста. Завтра нужен отчет 2 дня от компа не отхожу уже.
  5. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Ниже читайте подпись как задавать вопрос по СКД, а то и помогать нечем.
    Вообще, если Дата - это ресурс, то у этого ресурса по нужной группировке задайте агрегатную функцию МАКСИМУМ, добавьте это поле еще раз в ресурсы и задайте тоже самое имя поля для остальных полей группировок. Таким образом по нужной группировке отчета Вы получите максимальную дату, по остальным дату выборки набора.
  6. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Прикрепляю настройки.

    Вложения:

    • 1.rar
      Размер файла:
      4,5 КБ
      Просмотров:
      10
  7. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое! С этим справился осталось только с подсветкой разобраться.
  8. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Подсветка, насколько я понимаю, это по условию разукраску из отчета делаем. Ну, тут все просто, условия укажите и все норм будет
  9. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Сделал условное оформление. В вычисляемом поле делаю условие
    Код:
    ВЫБОР КОГДА ДокПоступленияДата < &Параметр1 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ
    Параметр1 это дата меньше которой должен посвечиваться товар. Не работает...
  10. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Сделайте поле в запросе еще одно в котором пропишите от параметра свой код, а в условном оформление просто проверку на Истина или Ложь
  11. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Вот за это отдельное спасибо! весь инет перерыл а оказывается поле нужно было в запрос добавлять). Все получилось именно так как и хотел сделать.
  12. TopicStarter Overlay
    Seva
    Offline

    Seva Опытный в 1С

    Регистрация:
    5 дек 2007
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Все сделал отчет работает), но как только добавляю общую форму настроек отчета то вываливается ошибка:


    {ОбщийМодуль.ТиповыеОтчеты(870)}: Ошибка при вызове метода контекста (Следующий): Ошибка компоновки данных
    ЭлементРезультата = ПроцессорКомпоновки.Следующий();
    по причине:
    Ошибка компоновки данных
    по причине:
    Ошибка получения данных
    по причине:
    Ошибка создания набора данных "НаборДанных1"
    по причине:
    Ошибка при исполнении запроса набора данных
    по причине:
    {(27, 65)}: Неверные параметры "РАЗНОСТЬДАТ"
    КОГДА РАЗНОСТЬДАТ(ПартииНаСкладахОстатки.ДокПоступления.Дата, <<?>>&Период, МЕСЯЦ) > 3

    Код модуля формы:
    Код:
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Если Не ЭтоОтработкаРасшифровки
    И Не СохранениеНастроек.ЗаполнитьНастройкиПриОткрытииОтчета(ОтчетОбъект) Тогда
    ИнициализацияОтчета();
    КонецЕсли;
    УправлениеОтчетами.УстановитьПериодОтчета(ОтчетОбъект, ЭтаФорма);
    ТиповыеОтчеты.НазначитьФормеУникальныйКлючИдентификации(ЭтаФорма);
    ТиповыеОтчеты.ОбновитьФормуТиповогоОтчетаПоКомпоновщику(ОтчетОбъект, ЭтаФорма);
    ТиповыеОтчеты.УправлениеОтображениемЭлементовФормыТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    КонецПроцедуры
    Процедура ДействияФормыНастройки(Кнопка)
    
    Если ТиповыеОтчеты.РедактироватьНастройкиТиповогоОтчета(ОтчетОбъект, ЭтаФорма) Тогда
    ОбновитьОтчет();
    КонецЕсли;
    
    КонецПроцедуры
    Процедура ДействияФормыСформировать(Кнопка)
    
    ОбновитьОтчет();
    
    КонецПроцедуры
    Процедура ДействияФормыЗаголовок(Кнопка)
    
    Кнопка.Пометка = Не Кнопка.Пометка;
    ТиповыеОтчеты.УправлениеОтображениемЭлементовФормыТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    ТиповыеОтчеты.УправлениеОтображениемЗаголовкаТиповогоОтчета(ОтчетОбъект, ЭтаФорма.ЭлементыФормы.Результат);
    
    КонецПроцедуры
    Процедура ДействияФормыОткрытьВНовомОкне(Кнопка)
    
    ТиповыеОтчеты.ОткрытьВНовомОкнеТиповойОтчет(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ДействияФормыВосстановитьЗначения(Кнопка)
    
    СохранениеНастроек.ВыбратьНастройкуФормы(СохраненнаяНастройка, ЭтаФорма, "ОтчетОбъект." + ОтчетОбъект.Метаданные().Имя, Ложь);
    ТиповыеОтчеты.ОбновитьФормуТиповогоОтчетаПоКомпоновщику(ОтчетОбъект, ЭтаФорма);
    ТиповыеОтчеты.ОбновитьЗаголовокТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ДействияФормыСохранитьЗначения(Кнопка)
    
    СохранениеНастроек.ВыбратьНастройкуФормы(СохраненнаяНастройка, ЭтаФорма, "ОтчетОбъект." + ОтчетОбъект.Метаданные().Имя, Истина);
    ТиповыеОтчеты.ОбновитьЗаголовокТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ДействияФормыОтбор(Кнопка)
    
    Кнопка.Пометка = Не Кнопка.Пометка;
    ПоказыватьБыстрыйОтбор = Кнопка.Пометка;
    ТиповыеОтчеты.УправлениеОтображениемЭлементовФормыТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    ТиповыеОтчеты.ОбработкаИзмененияТиповогоОтчетаНаФормеОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ОбновлениеОтображения()
    
    ТиповыеОтчеты.ОбновитьЗаголовокТиповогоОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура КнопкаНастройкаПериодаНажатие(Элемент)
    
    ТиповыеОтчеты.НастроитьПериод(НастройкаПериода, НачалоПериода, КонецПериода);
    ТиповыеОтчеты.ОбновитьПараметрыПериодаПоФорме(КомпоновщикНастроек, ЭтаФорма);
    ТиповыеОтчеты.ОбработкаИзмененияТиповогоОтчетаНаФормеОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ПолеВводаПериодПриИзменении(Элемент)
    
    ТиповыеОтчеты.ОбновитьПараметрыПериодаПоФорме(КомпоновщикНастроек, ЭтаФорма);
    ТиповыеОтчеты.ОбработкаИзмененияТиповогоОтчетаНаФормеОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    ТиповыеОтчеты.ОбработкаРасшифровкиТиповогоОтчета(Расшифровка, СтандартнаяОбработка, ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    Процедура ДействияФормыПечать(Кнопка)
    
    ТиповыеОтчеты.ПечатьТиповогоОтчета(ЭлементыФормы.Результат);
    
    КонецПроцедуры
    Процедура ПроверитьПоляВыбора(ЕстьПоле, ЭлементПоле, Поле, СтрокаПредупреждения = "")
    Если ЕстьПоле Тогда
    возврат;
    КонецЕСли;
    Если ТипЗнч(ЭлементПоле) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных")
    ИЛИ ТипЗнч(ЭлементПоле) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
    Для Каждого Элемент Из ЭлементПоле.Элементы Цикл
    ПроверитьПоляВыбора(ЕстьПоле, Элемент, Поле);
    КонецЦикла;
    Иначе
    Если ТипЗнч(ЭлементПоле) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
    Если ТипЗнч(ЭлементПоле.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных") И ТипЗнч(ЭлементПоле.ПравоеЗначение) = Тип("ПолеКомпоновкиДанных") Тогда
    СтрокаПредупреждения = ?(ЭлементПоле.ЛевоеЗначение = Поле, "Не верно задано значения отбора Тип цен.", СтрокаПредупреждения);
    Иначе
    ПолеУсловия = ?(ТипЗнч(ЭлементПоле.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных"), ЭлементПоле.ЛевоеЗначение, ЭлементПоле.ПравоеЗначение);
    ЕстьПоле = ЕстьПоле ИЛИ (ПолеУсловия = Поле И ЭлементПоле.Использование);
    КонецЕсли;
    ИначеЕсли ТипЗнч(ЭлементПоле) = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда
    ЕстьПоле = ЕстьПоле ИЛИ (НЕ Поле.Найти(ЭлементПоле.Поле) = Неопределено И ЭлементПоле.Использование);
    КонецЕсли;
    
    КонецЕсли;
    КонецПроцедуры
    Процедура ОбновитьОтчет() Экспорт
    Перем ПоляОптДляПроверки, ПолеТипЦен, ЕстьТипЦен, ЕстьСуммаОптовая, СтрокаПредупреждения;
    ПоляОптДляПроверки = Новый Массив();
    ПоляОптДляПроверки.Добавить(КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы.Найти("СуммаОптовая").Поле);
    ПоляОптДляПроверки.Добавить(КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы.Найти("ЦенаОптовая").Поле);
    ПоляОптДляПроверки.Добавить(КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы.Найти("ЕдиницаИзмеренияОптовая").Поле);
    ПолеТипЦен	   = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.Элементы.Найти("ТипЦен").Поле;
    ЕстьСуммаОптовая = Ложь;
    Для Каждого ЭлементПолеВыбора Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
    ПроверитьПоляВыбора(ЕстьСуммаОптовая, ЭлементПолеВыбора, ПоляОптДляПроверки);
    КонеццИкла;
    Если ЕстьСуммаОптовая Тогда
    ЕстьТипЦен		   = Ложь;
    СтрокаПредупреждения = "Не выбрано условие тип цен.";
    Для Каждого ЭлементПолеТипЦен Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
    ПроверитьПоляВыбора(ЕстьТипЦен, ЭлементПолеТипЦен, ПолеТипЦен, СтрокаПредупреждения);
    КонецЦикла;
    Если ЕстьСуммаОптовая И НЕ ЕстьТипЦен Тогда
    Предупреждение(СтрокаПредупреждения);
    возврат;
    КонецЕсли;
    КонецЕсли;
    СформироватьОтчет(ЭтаФорма.ЭлементыФормы.Результат, ЭтаФорма.ДанныеРасшифровки, , ЭтаФорма);
    КонецПроцедуры
    Процедура ТабличноеПолеОтборПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    
    ТиповыеОтчеты.ОбработкаИзмененияТиповогоОтчетаНаФормеОтчета(ОтчетОбъект, ЭтаФорма);
    
    КонецПроцедуры
    
    Процедура ТабличноеПолеОтборПравоеЗначениеДляКраткогоОтображенияЭлементаНачалоВыбора(Элемент, СтандартнаяОбработка)
    УправлениеОтчетами.ПодставитьВладельцаВПолеВвода(Элемент, ЭлементыФормы.ТабличноеПолеОтбор);
    КонецПроцедуры
    
    код модуль объекта отчета:
    Код:
    Перем СохраненнаяНастройка Экспорт;
    Перем Расшифровки Экспорт;
    #Если Клиент ИЛИ ВнешнееСоединение Тогда
    Функция СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина, ЭтаФорма = Неопределено) Экспорт
    Если НЕ ЭтаФорма = Неопределено Тогда
    УправлениеОтчетами.УстановитьПериодОтчета(ЭтотОбъект, ЭтаФорма, Ложь);
    КонецЕсли;
    Возврат ТиповыеОтчеты.СформироватьТиповойОтчет(ЭтотОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета);
    КонецФункции
    // В процедуре можно доработать компоновщик перед выводом в отчет
    // Изменения сохранены не будут
    Процедура ДоработатьКомпоновщикПередВыводом() Экспорт
    
    ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СпособУчетаСебестоимости"));
    
    Если НЕ ЗначениеПараметра = Неопределено Тогда
    ЗначениеПараметра.Значение = Константы.СпособУчетаСебестоимости.Получить();
    ЗначениеПараметра.Использование = Истина;
    КонецЕсли;
    
    ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    Если ЗначениеПараметра = Неопределено Тогда
    Возврат;
    КонецЕсли;
    
    Если ЗначениеПараметра.Значение = '00010101' Тогда
    ЗначениеПараметра.Значение = Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая);
    ЗначениеПараметра.Использование = Истина;
    ИначеЕсли ТипЗнч(ЗначениеПараметра.Значение) = Тип("Дата") Тогда
    ЗначениеПараметра.Значение = Новый Граница(КонецДня(ЗначениеПараметра.Значение), ВидГраницы.Включая);
    ЗначениеПараметра.Использование = Истина;
    КонецЕсли;
    
    КонецПроцедуры
    #КонецЕсли
    #Если Клиент Тогда
    
    // Для настройки отчета (расшифровка и др.)
    Процедура Настроить(Отбор, КомпоновщикНастроекОсновногоОтчета = Неопределено) Экспорт
    
    ТиповыеОтчеты.НастроитьТиповойОтчет(ЭтотОбъект, Отбор, КомпоновщикНастроекОсновногоОтчета);
    
    КонецПроцедуры
    Процедура СохранитьНастройку() Экспорт
    
    СтруктураНастроек = ТиповыеОтчеты.ПолучитьСтруктуруПараметровТиповогоОтчета(ЭтотОбъект);
    СохранениеНастроек.СохранитьНастройкуОбъекта(СохраненнаяНастройка, СтруктураНастроек);
    
    КонецПроцедуры
    // Процедура заполняет параметры отчета по элементу справочника из переменной СохраненнаяНастройка.
    Процедура ПрименитьНастройку() Экспорт
    
    Если СохраненнаяНастройка.Пустая() Тогда
    Возврат;
    КонецЕсли;
    
    СтруктураПараметров = СохраненнаяНастройка.ХранилищеНастроек.Получить();
    ТиповыеОтчеты.ПрименитьСтруктуруПараметровОтчета(ЭтотОбъект, СтруктураПараметров);
    
    КонецПроцедуры
    Процедура ИнициализацияОтчета() Экспорт
    
    // Создаем переменную описывающую поле "ХарактеристикаНоменклатуры"
    ПолеХарактеристикиНоменклатуры = Новый ПолеКомпоновкиДанных("ХарактеристикаНоменклатуры");
    
    // Если такого поля в настройках нет, тогда произведем его добавление
    Если ТиповыеОтчеты.ПолучитьЭлементСтруктурыПоПолюГруппировки(ПолеХарактеристикиНоменклатуры, КомпоновщикНастроек)=Неопределено Тогда
    
    // Создаем запрос для получения признака использования в ИБ учета по характеристикам
    ТекстЗапроса =
    "ВЫБРАТЬ
    | ВидыНоменклатуры.Ссылка
    |ИЗ
    | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
    |ГДЕ
    | НЕ ВидыНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.НеИспользовать)";
    Запрос = Новый Запрос(ТекстЗапроса);
    
    // Добавляем поле "Характеристика номенклатуры" если есть хоть один вид номенклатуры по которому установлено ведение доп. учета по характеристикам.
    Если НЕ Запрос.Выполнить().Пустой() Тогда
    
    ТиповыеОтчеты.ДобавитьГруппировку(КомпоновщикНастроек, ПолеХарактеристикиНоменклатуры, Истина);
    
    КонецЕсли;
    
    КонецЕсли;
    
    ТиповыеОтчеты.ИнициализацияТиповогоОтчета(ЭтотОбъект);
    
    КонецПроцедуры
    Расшифровки = Новый СписокЗначений;
    
    НастройкаПериода = Новый НастройкаПериода;
    #КонецЕсли

    Вложения:

    • 1.rar
      Размер файла:
      4,9 КБ
      Просмотров:
      5
  13. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Вам компоновщик объясняет что у Вас параметр не верный передается
    Курите на отладчике что за тип Вы туда впихнули

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