Автор Тема: Задача 2.09  (Прочитано 13496 раз)

0 Пользователей и 1 Гость просматривают эту тему.

provincial_1с

  • Новичок
  • *
  • Сообщений: 8
  • ФИО: Сергей
Задача 2.09
« : Декабрь 24, 2010, 06:26:58 am »
Кто решил ?
« Последнее редактирование: Март 28, 2019, 03:03:15 pm от provincial_1с »

svbel85

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей Беленченко
Задача 2.09
« Ответ #1 : Декабрь 27, 2010, 06:22:50 am »
pershinsergei, берем первую строку, запаминаем номенклатуру и срок, перебираем все остальтые строки, сравниваем, потом со второй строкой также
 можно так
« Последнее редактирование: Декабрь 27, 2010, 06:44:23 am от Сергей Беленченко »


BashOrgRu

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: BashOrgRu
Задача 2.09
« Ответ #2 : Май 12, 2011, 03:43:12 pm »
Quote (pershinsergei)
Вообще даже понятия не имею как реализовать это:
 В одном документе не может быть одинаковых товаров с различными сроками годности (и разной ценой)

 Мне кажется что в контексте
Quote
... чем на товар со сроком годности 30 января 2010г. Товар с одинаковым сроком годности может поступать разными документами и по разной цене, но одном документе не может быть одинаковых товаров с различными сроками годности (и разной ценой)
это больше воспринимается как установка начальных условий, а не требование к контролю состава приходной накладной.

А чего в ПВХ ВидыСубконто Субконто "Партии" Называется "срок годности"?


lubja

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Елена
Задача 2.09
« Ответ #3 : Июль 18, 2011, 12:01:14 pm »
знаю, что дату в качестве субконто не красиво ставить, но по-другому не знаю, как решить...

Добавлено (18.07.2011, 12:01)
---------------------------------------------
проверку приходной не реализовала


Вложения:
lubja_2_09.dt

vvvlad85

  • Пользователь
  • **
  • Сообщений: 16
  • ФИО: Владислав
Задача 2.09
« Ответ #4 : Август 07, 2011, 04:20:01 pm »
А если дату поставить в субконто то все просто. Но что скажут на это экзаменатор.

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 2.09
« Ответ #5 : Сентябрь 09, 2011, 11:29:53 pm »
То, что не рекомендовано еще не значит, что это неправильно.
Вложения:
DoctorRoza_2_9.dt

Para_1987

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Вячеслав
Задача 2.09
« Ответ #6 : Октябрь 09, 2011, 11:54:10 am »
Готово, вроде все по постановке. Документ операции делать не стал, и так понятно все с ним. Проверку в приходной реализовал, думаю это самое простое. В запросе необходимо группировать по номенклатуре и выбирать Количество Различные у цены и срока годности. Вот и все. Попарился с отчетом что бы привести в нужный вид. А так вроде бы задача не сложная. Не совсем понимаю одно...некоторые в задаче накладывают блокировку на поле СЧЕТ....это правильно или нет и почему? я наложил блокировку только на субконто1 (Номенклатура). Срок годности сделал как субконто 3 у товаров.
 Буду рад критике по поводу моего решения. smile
Вложения:
Para_1987_2.09.dt
« Последнее редактирование: Октябрь 09, 2011, 12:00:28 pm от Вячеслав »

mkanaev

  • Пользователь
  • **
  • Сообщений: 27
  • ФИО: Канаев Михаил Сергеевич
Задача 2.09
« Ответ #7 : Октябрь 10, 2011, 11:50:26 am »
Проверка реализовывается просто, запрос на таб.часть, группировка строк по номенклатуре, срок годности
 берём "Количество различных", если данный реквизит >1 тогда есть разные сроки годности!!! вот и всё проверка!.

 По поводу даты в субконто... я обычно завожу справочник "СрокиГодности"(наподобии справочника "Серии" в УТ) и задаю ему реквизит типа "дата" всё просто...

kitaets

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Виталий
Задача 2.09
« Ответ #8 : Ноябрь 09, 2011, 05:57:27 pm »
Конечно можно придраться к полной блокировке регистра, отсутствию проверки на NULL, но я думаю это просто, и все знают, как это реализовать. Смотрел другие решения, регистр сведений это конечно хорошо, но не усмотрел условия в задаче, что срок годности меняется 10 раз в неделю, поэтому отказался от рег.свед., решил сделать через справочник, запросы получаются легче, хотя по идее в этот же справочник можно было бы и партию воткнуть. Ну, ладно, сделал, как сделал, может кому поможет для сдачи экзамена. Не судите строго, я все же бывший Сишник.
Вложения:
2_9__Cv8.dt

garden

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Наталья
Задача 2.09
« Ответ #9 : Декабрь 02, 2011, 01:52:23 pm »
На одном из форумов прочитала ответ Павла Белоусова 1С
 "Павел, подскажите, пожалуйста, насколько в данной задаче уместно использование субконто нессылочного типа (тип дата) для срока годности? Читал, что подобное не желательно, не будет ли это ошибкой на экзамене?

 22.11.2009 21:10 Белоусов Павел, 1С

 Нет, не будет. Однако, Вы должны уметь пояснить почему так делать не рекомендуется. На всякий случай, можно посмотреть здесь: "Профессиональная разработка в системе 1С:Предприятие 8", стр.253 (Примечание), стр. 306-309 "

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 2.09
« Ответ #10 : Февраль 25, 2012, 12:56:50 pm »
Мое решение.
 1. Дату храню в справочнике.
 2. Реализовано условие в документе поступления
 ---------------------------------------------------------
 Интересно, получается при построении выборки для списания используется срок годности и цена партии. А дата самой партии не используется.
Вложения:
sv_mikh_02_09_4.dt
« Последнее редактирование: Февраль 25, 2012, 09:02:30 pm от Михайлов Сергей Валерианович »

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 2.09
« Ответ #11 : Февраль 27, 2012, 09:10:44 am »
Сложилось впечатление что "но в одном документе не может быть одинаковых товаров с различным сроком годности (и разной ценой)." означает что:
 - невозможно чтобы в одной партии был один и тот же товар с различными сроками годности разной себестоимостью.

 Йогурт
 07.01.10   Прих. накладная №1   10 шт 120 грн
 Йогурт
 17.01.10   Прих. накладная №1   10шт 150 грн.

 Кто как понимает эту проблему?

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 2.09
« Ответ #12 : Февраль 27, 2012, 01:19:18 pm »
Quote (kow1976)
Сложилось впечатление что "но в одном документе не может быть одинаковых товаров с различным сроком годности (и разной ценой)." означает что:
 - невозможно чтобы в одной партии был один и тот же товар с различными сроками годности разной себестоимостью.

 Йогурт
 07.01.10   Прих. накладная №1   10 шт 120 грн
 Йогурт
 17.01.10   Прих. накладная №1   10шт 150 грн.
 


 Я для себя условие на приход определил так: в одном документе не может быть одного товара по разным ценам или по разным срокам годности. Т.е. проще в одном документе только один товар с одним сроком годности и одной ценой. Не иначе.

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 2.09
« Ответ #13 : Февраль 27, 2012, 01:31:23 pm »
sv_mikh,
 Так не строится отчет. Но в принципе это не первая задача в которой задание противоречит отчету.
 К тому же Результат запроса в начале нужно упорядочить по сроку годности потом по себестоимости в партии. А исходя из данного запрета себестоимость будет всегда одинаковая.
 Куда податься бедному студенту?

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 2.09
« Ответ #14 : Февраль 27, 2012, 02:21:59 pm »
Quote (kow1976)
sv_mikh,
 Так не строится отчет. Но в принципе это не первая задача в которой задание противоречит отчету.
 К тому же Результат запроса в начале нужно упорядочить по сроку годности потом по себестоимости в партии. А исходя из данного запрета себестоимость будет всегда одинаковая.
 Куда податься бедному студенту?
 


 Глядя на отчет можно сказать: в одном приходе может быть товар по разным срокам годности и разным ценам... Может все обратное -- нельзя... Нельзя с разными сроками, и одинаковой ценой, нельзя с разными ценами и одинаковыми сроками... Молодец Белоусов... Умеет построить условие через несколько НЕ...
« Последнее редактирование: Февраль 27, 2012, 02:25:38 pm от Михайлов Сергей Валерианович »

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 2.09
« Ответ #15 : Февраль 28, 2012, 11:56:18 pm »
Такой вариант решения задачи.
 Спасибо за комментарии и замечания.
Вложения:
kow1976_2.9.dt

Hawk

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: hawk
Задача 2.09
« Ответ #16 : Апрель 22, 2012, 03:03:04 pm »
Получается условия противоречат отчету!!! на вопрос как быть? приходит ответ решай как хошь ) ... хотя по логике в реальности в приходной бывает такое что указывают один и тот же товар с разными сроками и разной ценой и есть еще одно условие "при проведении расходной себестоимость рассчитывается в разрезе партий и сроков годности" следовательно в приходной может быть товар с разными сроками и ценой иначе если в приходной нельзя вводить товар с разными сроками то логичнее рассчитывать себестоимость в разрезе партии без сроков годности т.к в партии не будет товара с разным сроком годности а в отчете он есть йогурт 10.01.12 и йогурт 17.01.10
« Последнее редактирование: Апрель 22, 2012, 03:04:11 pm от hawk »

3k_strelok

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
Задача 2.09
« Ответ #17 : Июнь 20, 2012, 12:05:33 pm »
kow1976, нет ручной операции, ресурс количество "Балансовый" у него же нет связи с признаком учета.
 sv_mikh, зачем дату хранить в справочнике, почему у ПВХ "виды субконто" не расширить типы значения характеристик?

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Задача 2.09
« Ответ #18 : Апрель 24, 2013, 02:39:36 pm »
Прикрепляю свое решение. Критика приветствуется.
Вложения:
fimanich_02_09.dt

nskripka

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Николай
Задача 2.09
« Ответ #19 : Июль 13, 2013, 03:00:53 pm »
Еще одно решение.
 Условие ,конечно, неоднозначное. Непонятное.
 Я думаю, что имелось ввиду то, что для в одной приходной накладной может быть один и тот же товар с одинаковыми сроками годности, но цена должна быть одинаковая. Иначе вы не сможете определить наиболее дорогой товар в этой приходной при списании.
 Как вы сможете правильно списать товар, если в накладной пришел одинаковый товар с одной  и той же датой годности, но по разным ценам. Чтобы правильно списался товар по цене, нужно еще определять один разрез хранения остатков - цена. (Как сделано в торговле).

 Если срок годности может быть только один для одной номенклатуры в одной приходной, то тогда его можно не использовать как субконто. Поскольку срок годности в этом случае можно получить из партии (из документа поступления и номенклатуры).

 Отчет сделал в двух вариантах. Первый - без макета. Второй - с макетом.
Вложения:
2_09_nskripka.dt
« Последнее редактирование: Июль 13, 2013, 03:01:11 pm от Николай »

DenisRos

  • Новичок
  • *
  • Сообщений: 3
  • ФИО: Денис
Задача 2.09
« Ответ #20 : Июль 22, 2013, 10:18:47 am »
Буду признателен если кто нить даст ответ на два вопроса:
 1. В задаче написано "не может быть одинаковых товаров с различным сроком годности  (и разной ценой)". Это означает, что не может быть одинаковых товаров у которых либо разные даты, либо разные цены или у которых при разных датах не может быть разных цен?
 2. В наиболее часто встречающихся ошибках написано, что регистр остатков должен закрываться в ноль. Как это можно сделать в этой задаче по счету "Прибыли и Убытки"? И вообще на сколько актуально это условие для бух учета, т.к. это уже третья задача у меня, которая никак не закрывается в ноль.

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 2.09
« Ответ #21 : Июль 23, 2013, 03:01:27 pm »
Цитата
DenisRos
1. я считаю как и "sv_mikh" - "в одном документе не может быть одного товара по разным ценам или по разным срокам годности."
 2. по этому вопросу я думаю, Расходная создаст движение по счету "Прибыли и убытки", а для закрытия этого счета уже нужны другие документы, которые не обговариваются в условии задачи. (как например что Приходная создает движения по счету "Товары", а Расходная закрывает этот счет по количеству и себестоимости)

 Мой вариант
Вложения:
KTT_2_9.dt

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 2.09
« Ответ #22 : Август 10, 2013, 12:58:28 am »
условие я понял так:
 в одном документе приходная не может быть один товар с одинаковым сроком годности и с разной ценой, либо с одинаковой ценой и с разным сроком годности.
 могли бы условие нормально написать, а то приходится сравнивать условие с отчетом и гадать что имели ввиду!!!

 решил без субконто СрокГодности, срок годности в расходной (а так же цену) и в отчете вытягиваю из приходной, по моему мнению это лучше чем плодить лишнее субконто тем более с примитивным типом.

 многие в решениях в запросах устанавливают субконто через параметр, зачем? ведь у нас субконто - предопределенное значение и пользователь не сможет изменить субконто, а так же все возможные субконто (количество) в счете Товары установлено
Вложения:
2.9.dt
« Последнее редактирование: Август 10, 2013, 03:14:28 pm от Артур »

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Задача 2.09
« Ответ #23 : Август 11, 2013, 10:01:21 am »
Цитата (artfa)
многие в решениях в запросах устанавливают субконто через параметр, зачем? ведь у нас субконто - предопределенное значение и пользователь не сможет изменить субконто, а так же все возможные субконто (количество) в счете Товары установлено
Если ты про параметр ВидыСубконто в запросе, то так запрос работает быстрее вроде бы
« Последнее редактирование: Август 11, 2013, 10:03:24 am от Смирнов Валерий »

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 2.09
« Ответ #24 : Август 11, 2013, 03:16:23 pm »
Цитата (fimanich)
Если ты про параметр ВидыСубконто в запросе, то так запрос работает быстрее вроде бы
я думаю наврядли, т.к. у нас субконто не может быть изменено и в запросе мы выбираем все субконто у счета Товары, поэтому ч\з параметр - явно лишнее действие, это все равно что мы например номенклатуре в запросе устанавливали параметр номенклатура из СпискаНоменклатуры, смысла в таком параметре нет, а вообще, по хорошему, нужно скорость выполнения запроса сравнить.

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Задача 2.09
« Ответ #25 : Август 11, 2013, 10:59:38 pm »
Цитата (artfa)
я думаю наврядли, т.к. у нас субконто не может быть изменено и в запросе мы выбираем все субконто у счета Товары, поэтому ч\з параметр - явно лишнее действие, это все равно что мы например номенклатуре в запросе устанавливали параметр номенклатура из СпискаНоменклатуры, смысла в таком параметре нет, а вообще, по хорошему, нужно скорость выполнения запроса сравнить.
Раньше до какого-то релиза платформы можно было в Предприятии порядок предопределенных субконто на счете поменять, хотя сейчас нет. Однако параметр ВидыСубконто ставят большинство.
 Насчет скорости: в одном отчете (не учебном) я наблюдал увеличение скорости в разы при установке этого параметра, при этом на всех счетах, которые анализировал отчет, аналитика была идентичная. Однако специально я не анализировал (т.е. для многих разных ситуаций), сейчас просто где возможно, ставлю этот параметр, вот и все. Подозреваю, что с установленным параметром план запроса каким-то образом становится более оптимальным... Там же ведь при запросе к виртуальной таблице регистра бухгалтерии анализируется сразу несколько физических таблиц...

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 2.09
« Ответ #26 : Август 12, 2013, 02:55:02 pm »
Цитата (fimanich)
Однако специально я не анализировал
замерил производительность с параметром &Субконто - масиив субконто и без, результат 0,0008395 против 0,014315, так что вы правы, дествительно ч\з параметр запрос работает быстрее почти в два раза, теперь буду устанавливать этот параметр во всех запросах в последующих решениях

non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Задача 2.09
« Ответ #27 : Сентябрь 22, 2013, 07:57:35 pm »
Решил задачу неординарно.
 Вынес срок годности в регистр сведений, объясняю почему:
 1. в одном документе приходная не может быть один товар с одинаковым сроком
 годности и с разной ценой, либо с одинаковой ценой и с разным сроком
 годности. 
 Как я понял необходимо реализовать проверку на данное событие
 Если использовать регистр сведений, при записи эта проверка будет реализована на уровне платформы
 2. Не рекомендуется использовать ВидыСубконто простых типов данных.

 В итоге получаем два субконто, номенклатура и партия, срок годности получаем из регистра сведений.

 Единственное, что при формировании отчета используется физическая таблица регистра, но я думаю это лучше чем использовать тип Дата в виде субконто.
 Выкладываю решение
Вложения:
6113376.dt

IT_PROGRAMMIST

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Дмитрий
Задача 2.09
« Ответ #28 : Январь 10, 2014, 05:35:10 pm »
Ребят, кому-нибудь попадалась данная задача на экзамене?
 Было ли ошибкой использования субконто нессылочного типа (тип дата) для срока годности?
 Просмотрел многие решения - практически никто не использует субконто с типом Дата.
 Вроде был уже получен на это ответ
 http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=547538&print=1
 что можно использовать. Или Белоусов Павел просто пошутил и на экзамене это оказалось ошибкой?

Zhuravlik

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Уничкин Роман Александрович
Задача 2.09
« Ответ #29 : Май 30, 2014, 05:44:31 pm »
Проверку реализовал, в качестве субконто "СрокГодности" использовал справочник. Прошу уделить внимание)
Вложения:
Zhuravlik_2.9.dt

Шахназар

  • Пользователь
  • **
  • Сообщений: 27
Re: Задача 2.09
« Ответ #30 : Май 30, 2015, 07:25:13 pm »
А как убрать заголовки в группах полей?

Шахназар

  • Пользователь
  • **
  • Сообщений: 27
Re: Задача 2.09
« Ответ #31 : Май 31, 2015, 10:39:04 am »
Рад буду критике!

Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 2.09
« Ответ #32 : Сентябрь 12, 2015, 02:48:40 pm »
Мое решение

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Задача 2.09
« Ответ #33 : Сентябрь 13, 2015, 03:30:56 pm »
Рад буду критике!

Проведение расходной накладной по старой методике. В цикле проверяешь, есть ли нехватка номенклатуры и, если не хватает, выполняется "Продолжить" и продолжаем вычислять движения для списания по партиям. Но ведь уже понятно, что документ не будет проведен, а на регистр поставлена блокировка, продажи этих позиций ожидают освобождения.
Короче, надо было в одном цикле проверить, хватает ли товара, и, если не хватает какой-то позиции, выходить. А лучше проверять остатки по новой методике.

Справочник "СрокиГодности" - не надо было, надо использовать поле с типом "Дата".

Вид учета субконто Суммовой тоже не надо было создавать.

Задача усложнена. Появились какие-то проекты, счет Дебиторка.

« Последнее редактирование: Сентябрь 13, 2015, 03:34:26 pm от Zeskord »

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Задача 2.09
« Ответ #34 : Сентябрь 13, 2015, 03:44:10 pm »
Мое решение

Проверка заполнения приходной накладной проверяет, есть ли одинаковые сочетания Номенклатура - СрокГодности - Цена. Но можно ввести две одинаковых номенклатуры с разными сроками годности и разной ценой. Цитата из условия:
Цитировать
но в одном документе не может быть одинаковых товаров с
различным сроком годности (и разной ценой)

При проведении расходной накладной та же ситуация, см. коммент выше. Мы уже понимаем, что документ не будет проведен, но продолжаем вычисления движений списания партий по остальным позициям документа.

Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 2.09
« Ответ #35 : Сентябрь 13, 2015, 04:14:57 pm »
Мое решение

Проверка заполнения приходной накладной проверяет, есть ли одинаковые сочетания Номенклатура - СрокГодности - Цена. Но можно ввести две одинаковых номенклатуры с разными сроками годности и разной ценой. Цитата из условия:
Цитировать
но в одном документе не может быть одинаковых товаров с
различным сроком годности (и разной ценой)

При проведении расходной накладной та же ситуация, см. коммент выше. Мы уже понимаем, что документ не будет проведен, но продолжаем вычисления движений списания партий по остальным позициям документа.
спасибо!

rusmosav

  • Проверенный
  • ***
  • Сообщений: 137
Re: Задача 2.09
« Ответ #36 : Октябрь 05, 2015, 07:02:43 am »
Прощу оценить.

lyulko

  • Пользователь
  • **
  • Сообщений: 24
  • ФИО: Александр
Re: Задача 2.09
« Ответ #37 : Октябрь 21, 2016, 07:54:40 am »
День добрый, коллеги! посмотрите мое решение, буду рад критике!

ahang

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Антон
Re: Задача 2.09
« Ответ #38 : Октябрь 21, 2016, 09:16:35 am »
День добрый, коллеги! посмотрите мое решение, буду рад критике!
Добрый день! В документе Расходная накладная присутствует "проблема копеек", а также в цикле нет проверки на количество распределяемого товара, т.е. в цикле отсутствует следующие условие:
Пока Выборка.Следующий() И ОсталосьРаспределить>0 ЦиклТакже считаю в качестве оптимизации не нужно делать 2 цикла по ВыборкаНоменклатура, лучше сделать проверку и списание в одном цикле.

Примерно все будет выглядеть вот так:
Пока ВыборкаНоменклатура.Следующий() Цикл
Если ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток>0 Тогда
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Недостаточно товара <"+ ВыборкаНоменклатура.номенклатура+"> в количестве <"+(ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток)+"> шт";
Сообщение.Сообщить();
КонецЕсли;

Если Отказ Тогда
Продолжить;
КонецЕсли;

Выборка = ВыборкаНоменклатура.Выбрать();
ОсталосьРаспределить = ВыборкаНоменклатура.Количество;
Пока Выборка.Следующий() И ОсталосьРаспределить > 0 Цикл
Распределить =МИН(ОсталосьРаспределить,выборка.КоличествоОстаток);
ОсталосьРаспределить = ОсталосьРаспределить-Распределить;
Движение = Движения.Управленческий.Добавить();
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.КоличествоКт = Распределить;
// обход проблемы копеек
Движение.Сумма = ?(ОсталосьРаспределить=выборка.КоличествоОстаток,Выборка.СуммаОстаток,Распределить/Выборка.КоличествоОстаток*Выборка.СуммаОстаток);
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = Выборка.Субконто2;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Партия] = Выборка.Субконто3;
КонецЦикла;
КонецЦикла;

Если НЕ Отказ Тогда
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.Сумма = СуммаПоДокументу;
КонецЕсли;

Также есть небольшое замечание по запросу, раз Вы решили сделать отдельную виртуальную таблицу ВТ_Остатки, то не забывайте и по ней сделать Индексирование по полю Номенклатура, т.к. чуть ниже в запросе по этому полю идет соединение м/у двумя таблицами ДокТЧ и ВТ_Остатки. Вообще можно было бы обойтись без создания ВТ_Остатки.
« Последнее редактирование: Октябрь 21, 2016, 09:24:45 am от ahang »

lyulko

  • Пользователь
  • **
  • Сообщений: 24
  • ФИО: Александр
Re: Задача 2.09
« Ответ #39 : Октябрь 21, 2016, 11:51:08 am »
День добрый, коллеги! посмотрите мое решение, буду рад критике!
Добрый день! В документе Расходная накладная присутствует "проблема копеек", а также в цикле нет проверки на количество распределяемого товара, т.е. в цикле отсутствует следующие условие:
Пока Выборка.Следующий() И ОсталосьРаспределить>0 ЦиклТакже считаю в качестве оптимизации не нужно делать 2 цикла по ВыборкаНоменклатура, лучше сделать проверку и списание в одном цикле.

Примерно все будет выглядеть вот так:
Пока ВыборкаНоменклатура.Следующий() Цикл
Если ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток>0 Тогда
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Недостаточно товара <"+ ВыборкаНоменклатура.номенклатура+"> в количестве <"+(ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток)+"> шт";
Сообщение.Сообщить();
КонецЕсли;

Если Отказ Тогда
Продолжить;
КонецЕсли;

Выборка = ВыборкаНоменклатура.Выбрать();
ОсталосьРаспределить = ВыборкаНоменклатура.Количество;
Пока Выборка.Следующий() И ОсталосьРаспределить > 0 Цикл
Распределить =МИН(ОсталосьРаспределить,выборка.КоличествоОстаток);
ОсталосьРаспределить = ОсталосьРаспределить-Распределить;
Движение = Движения.Управленческий.Добавить();
Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.КоличествоКт = Распределить;
// обход проблемы копеек
Движение.Сумма = ?(ОсталосьРаспределить=выборка.КоличествоОстаток,Выборка.СуммаОстаток,Распределить/Выборка.КоличествоОстаток*Выборка.СуммаОстаток);
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.СрокГодности] = Выборка.Субконто2;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Партия] = Выборка.Субконто3;
КонецЦикла;
КонецЦикла;

Если НЕ Отказ Тогда
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
Движение.Период = Дата;
Движение.Сумма = СуммаПоДокументу;
КонецЕсли;

Также есть небольшое замечание по запросу, раз Вы решили сделать отдельную виртуальную таблицу ВТ_Остатки, то не забывайте и по ней сделать Индексирование по полю Номенклатура, т.к. чуть ниже в запросе по этому полю идет соединение м/у двумя таблицами ДокТЧ и ВТ_Остатки. Вообще можно было бы обойтись без создания ВТ_Остатки.

Спасибо, да действительно упустил проверку на "осталосьСписать>0" в спешке таймера отсчета времени. все остальные замечания тоже исправил

ahang

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Антон
Re: Задача 2.09
« Ответ #40 : Октябрь 21, 2016, 01:05:22 pm »
Прощу оценить.

В модуле проведения документа Расходная накладная, когда получаете виртуальную таблицу "Список", забыли указать условие отбора по текущему документу.

Также считаю создавать справочник "Сроки" излишним. Для счета "Товары" по аналитике "Срок годности" нужно было использовать "Дату", а не справочник. В связи с тем, что в запросе Вы упорядочивание делаете по наименованию поля "Срок годности", то не выполняется условие задачи "В первую очередь списывается товар с наименьшим сроком годности...". Т.е. если в Вашей базе поставить на приход один и тот же товар, но с разными сроками годности, например "01/02/2018" и "30.06.2017", то у Вас списывается первым товар со сроком "01/02/2018".

majestic

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Александр
Re: Задача 2.09
« Ответ #41 : Март 04, 2017, 03:08:14 pm »
Решил, используя 3 субконто у счета "Товары" - Номенклатура, Партия, Срок годности. В случае, если в документе поступления товаров добавляется строчка номенклатуры со сроком годности, отличающимся от срока годности уже введенной аналогичной номенклатуры, то строчки схлопываются по количеству, цена берется из уже введенной строки.

veiuper

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Осипов Валерий Вячеславович
Re: Задача 2.09
« Ответ #42 : Июнь 27, 2018, 06:23:50 pm »
Буду рад критике.

С учетом ответа Павла Белоусова на http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=547538&print=1.