Материалы курса «Подготовка к Аттестации по Платформе 8.2» – Раздел 1, задача 1.46 «Abibas»
Еще одна задача раздела “Оперативный учет” – задача 1.46 “Abibas”
Комментарий от Павла:
В задаче используются характеристики, задача крайне сильно похожа на задачу №1.46 из сборника, в тексте задачи я позволил себе более конкретно в отчете показать, что же нужно вывести, и что такое свойства и характеристики товаров.
Советую посмотреть на реализацию механизмов свойств и характеристик в типовых, это поможет при решении подобных задач.
- Изучите материалы задачи.
- Вопросы, возникшие в ходе изучения этих материалов, задавайте в комментариях на текущей странице. Ответы преподавателя и комментарии других участников будут Вам доступны, только если Вы залогинены и у Вас есть доступ в Мастер-группу.
- Общие вопросы по курсу (в т.ч. организационные) задавайте на стартовой странице.
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (29):
Комментарии закрыты
Здравствуйте, Павел,
Урок, отличный спасибо!
В задаче сказано, что списание себестоимости реализовывать в разрезе партий (для этого создается РН). С этим все понятно. А как быть с проверкой остатков номенклатуры, создать еще один РН? Т.е. как понимается, сначала проверяем остатки, а только потом списываем себестоимость.
И еще вопрос, в каком случае использовать БликироватьДляИзменения = Истина, а в каком объект БлокировкаДанных (например, для этой задачи)?
1. Да нужен еще один регистр для контроля остатков.
2. Думаю поможет статья: http://курсы-по-1с.рф/articles/статья-платформа-блокировки/
Получается, что необходимо использовать и БликироватьДляИзменения = Истина для РН Контроля остатков, и БлокировкаДанных для РН себестоимости, т.к. по каким партиям будем списывать мы не знаем. Это так?
Да.
Если пишем-читаем – блокировать для изменения.
Если читаем-пишем – блокировка данных.
Подскажите в каких случаях в ПВХ необходимо заполнять свойство “Дополнительные значения характеристик”?
Получил ответ в стартовом пакете: “Это будет значение по умолчанию при создании нового элемента ПВХ”.
Правильный ответ. Не понимаю вопроса.
…
(текст комментария доступен только участникам Мастер-группы)
Существует 2 методики решения таких задач. Вводить 2 регистра (ОстаткиПартий и Остатки) или партию при переходе на метод “ПоСреднему” обнулять. Естественно при списании “ПоСреднему” никаких партий в регистре (остатков партий) быть не должно.
…
(текст комментария доступен только участникам Мастер-группы)
Нет. Нельзя.
Разреза себестоимости по партиям быть не должно при использовании метода списания “по среднему”.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
По условию задачи “Необходимо построить отчет о движениях товаров за период по выбранной характеристике в
количественном и суммовом выражении”. Дальше есть пример отчета с выборкой по производителю. Что мы и реализовали в учебном примере.
Но само задание читается таким образом, что пользователь должен перед построением отчета выбрать, по какой характеристике должен быть построен отчет, по производителю или по цвету и т.п. Если решать такую задачу, то в этом случае характеристики, заданные для справочника или в запросе СКД, нам не помогут. В запросе нужно будет отобрать выбранную характеристику непосредственно из регистра значений характеристик и присоединить к ней значения и обороты. Это верный подход к такой формулировке задачи?
Достаточно описать связь характеристик в СКД, сам отбор установит пользователь.
Порекомендуйте, пожалуйста, как правильно организовать партионный учет в разрезе свойств и партий?
Я решил задачу таким образом.
Запрос.Текст =
“ВЫБРАТЬ
| ДокТЧ.Номенклатура,
| ДокТЧ.Характеристика,
| ДокТЧ.Количество,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КолОст,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОст,
| ОстаткиНоменклатурыОстатки.Партия,
| ОстаткиНоменклатурыОстатки.Партия.МоментВремени КАК Сортировка
|ИЗ
| ДокТЧ КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| (Номенклатура, Характеристика) В
| (ВЫБРАТЬ
| доктч.Номенклатура,
| доктч.Характеристика
| ИЗ
| доктч КАК доктч)) КАК ОстаткиНоменклатурыОстатки
| ПО ДокТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
| И ДокТЧ.Характеристика = ОстаткиНоменклатурыОстатки.Характеристика”;
Запрос.УстановитьПараметр(“МоментВремени”, МоментВремени());
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Движения.ОстаткиНоменклатуры.Записать();
КонецЕсли;
Результат = Запрос.Выполнить();
ТаблОстатки = Результат.Выгрузить();
Порядок = “Возр”;
Если УП = Перечисления.УчетнаяПолитика.ЛИФО Тогда
Порядок = “Убыв”;
КонецЕсли;
Пока ВыборкаПоТЧ.Следующий() Цикл
Поиск = Новый Структура;
Поиск.Вставить(“Номенклатура”, ВыборкаПоТЧ.Номенклатура);
Поиск.Вставить(“Характеристика”, ВыборкаПоТЧ.Характеристика);
МассивСтрок = ТаблОстатки.НайтиСтроки(Поиск);
ТаблНом = ТаблОстатки.Скопировать(МассивСтрок);
ТаблНом.Сортировать(“Сортировка ” + Порядок, Новый СравнениеЗначений);
СписатьВсего = ТаблНом[0].Количество;
ОсталосьВсего = ТаблНом.Итог(“КолОст”);
Если СписатьВсего > ОсталосьВсего Тогда
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = “Не хватает номенклатуры”;
Сообщение.Сообщить();
Продолжить;
КонецЕсли;
Для каждого Строка Из ТаблНом Цикл
Если Строка.КолОст = 0 Тогда
Продолжить;
КонецЕсли;
КСписанию = Мин(СписатьВсего, Строка.КолОст);
Если КСписанию = 0 Тогда
Прервать;
КонецЕсли;
Если КСписанию = Строка.КолОст Тогда
Сумма = Строка.СуммаОст;
Иначе
Сумма = КСписанию / Строка.КолОст * Строка.СуммаОст;
КонецЕсли;
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Характеристика = Строка.Характеристика;
Движение.Партия = Строка.Партия;
Движение.Количество = КСписанию;
Движение.Сумма = Сумма;
СписатьВсего = СписатьВсего – КСписанию;
КонецЦикла;
КонецЦикла;
Т.е. с помощью выгрузки результата запроса в таблицу значений и дальнейшим поиском нужных строк по номенклатуре и свойству.
Это правильно? или как то можно построить запрос с итогами, чтобы можно было обходить выборку иерархически?
Вроде все правильно. Характеристика – доп измерение в регистре остатков.
Добрый день Павел. В задаче 1.48 есть такое условие “если из продуктов изготовлено блюдо, например из овощей сделан салат, то продаваться может только само блюдо, а входящие в его состав продукты проданы быть не могут”. Как контролировать эти продукты в табличной части?
Варианта 2.
1. Свойство в справочнике.
2. Запрос к регистру сведений где “рецепты” хранятся и проверка есть ли там этот ингредиент или нет.
Второй вариант более правильный.
Павел как списание себестоимости должно происходить в разрезе СВОЙСТВ по партиям? Должны быть собраны итоги по Вариантам Номенклатуры, а не по самой Номенклатуре?
Каждые “ботинки, 42 размера, черные” – это отдельный объект учета. Партионный учет ведется в разрезе именно этого объекта.
До конца неясно, когда мы используем старую методику проведения документа, а когда новую?
Это в контексте прошлого вопроса?
Я отвечу не в контексте. Там где есть себестоимость (деньги) методику оперативного проведения использовать не получится.
Павел, добрый день. Мой вопрос не относится к описанной в данной рубрике задаче, а имеет отношение к другим задачам по оперативному учету. Решила, что здесь будет актуально. В сборнике (правда 2010 года) под номерами 1.28 и 1.29.
По задаче 1.28.
Если кратко, то требуется использовать для списания стоимости партионный учет, а потом при поступлении доп. затрат (в документе указываем партию, на которую вешаем затраты) вносить корректировки стоимости товаров, как еще не проданных, так и уже проданных товаров.
Что делаю:
РН “Остатки товаров”:
Приход: Приходная накладная – количество и стоимость товара;
Раход: Расходная накладная – количество и стоимость, списанная по партии;
Приход: Доп затраты – сумма затрат, распределенная по товарам конкретной партии, период – дата документа;
Расход: Доп затраты – сумма распределенных затрат, по которым уже были отгрузки, период – дата документа.
РН “Продажи” – оборотный:
Раходная накладная – формируем выручку, себестоимость;
Доп затраты – увеличиваем себестоимость по проданным товарам, период – дата документа .
В отчетах (как в 1.28. так и в 1.29), себестоимость требуется указывать с учетом доп затрат вне зависимости от периода их возникновения.
Т.к. во всех, формируемых мной движениях период = дате документа, то при создании отчета на СКД требуемого условия никак не добиться :(, т.е. в консоли могу получить, а в СКД не перевести.
Вопрос:
Я не правильно спроектировала структуру регистров, может период для Доп затрат нужно указывать по дате Расходной накладной?
Или есть какой-нибудь волшебный метод, позволяющий в СКД для одной виртуальной таблицы использовать стандартное ограничение периода, а для второй нет?
И по 1.29.
В задаче есть такой абзац “Документ Доп. затраты может сниматься с проведения или редактироваться задним числом. В этом случае, если товар уже был продан, то его себестоимость должна быть скорректирована без перепроведения самих документов продаж”, т.е. требуется что-то вроде восстановления последовательности или рисовать движения Доп затрат после движений документов продажи?
Заранее спасибо.
Приветствую!
В регистр с остатками товаров приход формирует 2 документа: Поступление товаров и Поступление доп затрат, а расход один: Продажа товаров.
Коллизии о которых Вы говорите решаются с помощью последовательностей.
А отчеты строятся на основе регистра с Продажами, а туда попадет правильная себестоимость при условии целостности последовательности.
Спасибо за ответ.
Получается, что при использовании последовательности, обе задачи решаются одинаково, не смотря на оговаривающиеся условия наличия/отсутствия возможности редактирования доп. затрат задним числом?
Да.
Всегда ли нужно использовать последовательности?
Странный вопрос. Всегда ли: нет. Зависит от задачи. Часто даже в задачах где предусматривается последовательности до них дело не доходит, так как сама задача решена неверно.
Павел,извините за может быть глупый вопрос, я не поняла, какой алгоритм действий, если “Документ Доп. затраты может сниматься с проведения или редактироваться задним числом. В этом случае, если товар уже был продан, то его себестоимость должна быть скорректирована без перепроведения самих документов продаж”.
Я, если честно, не глубоко вникал в реение обсуждаемой Вами задачи, но возможно сделать либо обработку, корректирующую движения по регистрам, либо регламентный документ, который в конце месяца будет корректирующие движения делать.