Автор Тема: Задача 2.38 / 2.39 (Новые билеты)  (Прочитано 8418 раз)

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

mx-sunny

  • Пользователь
  • **
  • Сообщений: 46
  • ФИО: Щербаков Максим Федорович
Задача 2.38 / 2.39 (Новые билеты)
« : Май 21, 2018, 11:22:59 am »
Подскажите пожалуйста кто как подобрал билет на ввод начальных данных для задачи 2.38

2,38 отличается от 2.39 тем, что  ..в компании ордерные склады не используются"
Но когда ордерный склад не используется нет возможности задать Политику учета серий отличную от справочного указания.

Кому нибудь попадалась такая задача на экзамене?
Просмотрел все задачи на ввод 1.хх из сборника, ни где нет условий по справочному указанию серий.

Дарья

  • Пользователь
  • **
  • Сообщений: 87
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #1 : Май 16, 2019, 06:59:31 pm »
Прилагаю своё решение.
Буду рада советам/комментариям!


Sergey1C

  • Пользователь
  • **
  • Сообщений: 98
  • Сергей
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #2 : Май 17, 2019, 11:12:04 am »
Прилагаю своё решение.
Буду рада советам/комментариям!
Хорошее решение.
Про то что нужно брать не текущую дату, а дату документа, мы никогда не договоримся:).
Неправильная проверка ".... Серия Есть NULL". Даже если иногда и срабатывает. Если серия не выбрана, то там не NULL, а пустая ссылка типа "Справочник.Серии". Что совсем не одно и тоже.

niko_la

  • Новичок
  • *
  • Сообщений: 5
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #3 : Август 13, 2019, 10:56:17 am »
Друзья, привет.
Кому на экзамене попадалась эта, ну или похожая, задача? Кто как решал и у кого какие мысли по ее решению ?
Эта задача с большей долей вероятности идет с задачей (похожей на задачу) № 1.8 из сборника 2016 года.
Должны ли решения задач на "Ввод данных" и "Изменение функциональности" логически взаимосвязаны между собой?
На просторах интернета есть некоторые рекомендации, что задачу № 1.8 нужно решать через характеристики, а не через серии как оно написано в условии задачи в явном виде.
В связи с чем возникает логический вопрос, а как же тогда реализовать эту задачу №2.38 и будет ли разница при реализации задачи 2.39, где ордерные склады Используются?
В программе уже реализован функционал по хранению сроков годности для серий. Значит, при условии, что задачу №2.38 решать с применением серий, достаточным будет реализовать хранение "минимального количества дней годности".
По итогу получим что 1 задача решена на Характеристиках, а вторая на Сериях. будет ли это сказываться на результате при проверке преподавателем ?
Спасибо.

Avsepotomuchto

  • Пользователь
  • **
  • Сообщений: 29
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #4 : Сентябрь 18, 2019, 09:11:03 am »
Прилагаю своё решение.
Буду рада советам/комментариям!

Добрый день!

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

Sergey1C

  • Пользователь
  • **
  • Сообщений: 98
  • Сергей
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #5 : Сентябрь 18, 2019, 01:04:38 pm »
Прилагаю своё решение.
Буду рада советам/комментариям!

Добрый день!

Пыталась воспроизвести ваше решение, однако приходный ордер проводится в любом случае с любым сроком годности!
Можете выложить в виде dt?
Прошу прощения, что встреваю. Вдруг Дарья сейчас не может ответить. Но ее решение верное, мы с ней это обсуждали, и по-моему, изложено понятно.

А почему не хотите попробовать разобраться в чем дело?
Тут возможны 3  варианта:
1. У вас не сработала подписка на событие. Создайте хотя бы пустую процедуру на подписку при проведении и проверьте в отладчике, вызывается ли эта процедура при проведении прих. ордера.
2. Процедура работает, но запрос выдает неверные данные. Так же устанавливаем отладочную метку за процедурой Запрос.Выполнить() и в отладчике выгружаем результаты в таблицу значений. Может быть параметры неверно в запрос передаете.
3. Если 1 и 2 проверили, то несложно будет прогнать модуль в отладчике до конца, возможно, где-то иная опечатка.

Avsepotomuchto

  • Пользователь
  • **
  • Сообщений: 29
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #6 : Сентябрь 18, 2019, 01:43:13 pm »
Прилагаю своё решение.
Буду рада советам/комментариям!

Добрый день!

Пыталась воспроизвести ваше решение, однако приходный ордер проводится в любом случае с любым сроком годности!
Можете выложить в виде dt?
Прошу прощения, что встреваю. Вдруг Дарья сейчас не может ответить. Но ее решение верное, мы с ней это обсуждали, и по-моему, изложено понятно.

А почему не хотите попробовать разобраться в чем дело?
Тут возможны 3  варианта:
1. У вас не сработала подписка на событие. Создайте хотя бы пустую процедуру на подписку при проведении и проверьте в отладчике, вызывается ли эта процедура при проведении прих. ордера.
2. Процедура работает, но запрос выдает неверные данные. Так же устанавливаем отладочную метку за процедурой Запрос.Выполнить() и в отладчике выгружаем результаты в таблицу значений. Может быть параметры неверно в запрос передаете.
3. Если 1 и 2 проверили, то несложно будет прогнать модуль в отладчике до конца, возможно, где-то иная опечатка.

Спасибо! Буду проверять.

А может у Дарьи есть также и решение задачи 2.23? можете выложить?
смотрела решения в соответствующей ветке, муторно, непонятно и сомнительно.

Pastor

  • Пользователь
  • **
  • Сообщений: 38
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #7 : Октябрь 17, 2019, 10:59:27 am »
Прилагаю своё решение.
Буду рада советам/комментариям!
Решение ошибочное.
1. Серии в своем справочнике привязываются к виду номенклатуры, т.е. может быть ситуация, когда одна и та же серия входит в разные виды номенклатуры. Соответственно, в одном виде номенклатуры есть анализ по сроку годности, в другом - нет. В запросах на серии надо связывать всегда не только по самой серии, но и по виду номенклатуры.
2. Анализ надо делать до проведения документа, точнее, даже до записи документа, а не в процессе.
3. Надо вытаскивать из запроса Номер строки, чтобы показывать в какой строке ошибка. (Лично готов придушить разработчиков из 1С, когда они в штатной УТ не во всех доках такой механизм внедряют).

Sergey1C

  • Пользователь
  • **
  • Сообщений: 98
  • Сергей
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #8 : Октябрь 17, 2019, 04:01:36 pm »
Решение ошибочное.
1. Серии в своем справочнике привязываются к виду номенклатуры, т.е. может быть ситуация, когда одна и та же серия входит в разные виды номенклатуры. Соответственно, в одном виде номенклатуры есть анализ по сроку годности, в другом - нет. В запросах на серии надо связывать всегда не только по самой серии, но и по виду номенклатуры.
2. Анализ надо делать до проведения документа, точнее, даже до записи документа, а не в процессе.
3. Надо вытаскивать из запроса Номер строки, чтобы показывать в какой строке ошибка. (Лично готов придушить разработчиков из 1С, когда они в штатной УТ не во всех доках такой механизм внедряют).
Нет, решение нормальное:
1. В задании вообще ничего не сказано про Виды номенклатуры. Они вообще могут не использоваться. Тем более не сказано, что в одном виде нужно включать проверку, в другом нет. Серия - есть дополнительная аналитика номенклатуры - пришла номенклатура - отметили срок годности. Поэтому если конкретное молоко годно до конца недели, то не важно, под каким видом номенклатуры ее отразили. Единственное, что возможно появление номенклатуры, вида, в котором не ведется посерийный учет - ну тогда и в документ внести серию не получится.
2. В задании написано "... документ не должен проводиться". Значит в подписке на проведение - этот контроль и должен размещаться. При необходимости - проведение в ней отменяется.
3. Автор обошлась выводом сообщения через Сообщить(...). Что не противоречит заданию. Задача разработать интерфейс аналогичный УТ на экзамене не ставится. Номер строки, при желании, можно использовать в СообщениеПользователю.

Pastor

  • Пользователь
  • **
  • Сообщений: 38
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #9 : Октябрь 17, 2019, 04:35:20 pm »
Нет, решение нормальное:
1. В задании вообще ничего не сказано про Виды номенклатуры. Они вообще могут не использоваться. Тем более не сказано, что в одном виде нужно включать проверку, в другом нет. Серия - есть дополнительная аналитика номенклатуры - пришла номенклатура - отметили срок годности. Поэтому если конкретное молоко годно до конца недели, то не важно, под каким видом номенклатуры ее отразили. Единственное, что возможно появление номенклатуры, вида, в котором не ведется посерийный учет - ну тогда и в документ внести серию не получится.
2. В задании написано "... документ не должен проводиться". Значит в подписке на проведение - этот контроль и должен размещаться. При необходимости - проведение в ней отменяется.
3. Автор обошлась выводом сообщения через Сообщить(...). Что не противоречит заданию. Задача разработать интерфейс аналогичный УТ на экзамене не ставится. Номер строки, при желании, можно использовать в СообщениеПользователю.
1. В заданиях много чего не сказано, но это не значит, что это можно не делать. Лень спорить, просто посмотрите курс Чистова про доработку УТ. Там похожая задача очень подробно разжевана. И решается через соединение с Видом номенклатуры.
"Они вообще могут не использоваться. " - Вы серьезно? Любой экзаменатор после таких слов имеет полное право отправить Вас на пересдачу, т. к. такие ситуации (используется/не используется Вы ОБЯЗАНЫ учитывать. Решение должно быть универсальным, а не работать на одном частном примере с молоком.
2. Опять же - почему проверку надо делать не только до проведения, но и до записи - смотрите у Чистова.
3. "2" за это не поставят, но оценку могут снизить.
"Номер строки, при желании, можно использовать в СообщениеПользователю." - без изменения запроса нельзя.

Sergey1C

  • Пользователь
  • **
  • Сообщений: 98
  • Сергей
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #10 : Октябрь 17, 2019, 04:57:38 pm »
Нет, решение нормальное:
1. В задании вообще ничего не сказано про Виды номенклатуры. Они вообще могут не использоваться. Тем более не сказано, что в одном виде нужно включать проверку, в другом нет. Серия - есть дополнительная аналитика номенклатуры - пришла номенклатура - отметили срок годности. Поэтому если конкретное молоко годно до конца недели, то не важно, под каким видом номенклатуры ее отразили. Единственное, что возможно появление номенклатуры, вида, в котором не ведется посерийный учет - ну тогда и в документ внести серию не получится.
2. В задании написано "... документ не должен проводиться". Значит в подписке на проведение - этот контроль и должен размещаться. При необходимости - проведение в ней отменяется.
3. Автор обошлась выводом сообщения через Сообщить(...). Что не противоречит заданию. Задача разработать интерфейс аналогичный УТ на экзамене не ставится. Номер строки, при желании, можно использовать в СообщениеПользователю.
1. В заданиях много чего не сказано, но это не значит, что это можно не делать. Лень спорить, просто посмотрите курс Чистова про доработку УТ. Там похожая задача очень подробно разжевана. И решается через соединение с Видом номенклатуры.
"Они вообще могут не использоваться. " - Вы серьезно? Любой экзаменатор после таких слов имеет полное право отправить Вас на пересдачу, т. к. такие ситуации (используется/не используется Вы ОБЯЗАНЫ учитывать. Решение должно быть универсальным, а не работать на одном частном примере с молоком.
2. Опять же - почему проверку надо делать не только до проведения, но и до записи - смотрите у Чистова.
3. "2" за это не поставят, но оценку могут снизить.
"Номер строки, при желании, можно использовать в СообщениеПользователю." - без изменения запроса нельзя.
Ничего не имею против курса Чистова. Если там демонстрируют больше, чем требуется, то это безусловно хорошо. И нечего плохого, если это повторить на экзамене не будет.
Ну зачем называть нормальное решение неправильным?
Есть, конечно, недочеты. Свои замечания про дату запроса и проверку на пустое значение, я высказал.
Кстати, решал аналогичную задачу на экзамене (про "плохие" серии) и все, знаете ли, удачно.
1. Да, соглашусь, обязаны. И где это решение не будет работать, когда серии используются или не используются?
2. Вот тут я не согласен. Документ не должен проводиться, а не записываться. Если документ будет невозможно записать, то вот здесь претензии и возникнут.
3. Да, конечно, чтобы привязаться к номеру строки, нужно его выдернуть запросом. Я к тому, что в Сообщить() - этот номер бесполезен.

Pastor

  • Пользователь
  • **
  • Сообщений: 38
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #11 : Октябрь 18, 2019, 09:36:47 am »
Ничего не имею против курса Чистова. Если там демонстрируют больше, чем требуется, то это безусловно хорошо. И нечего плохого, если это повторить на экзамене не будет.
Ну зачем называть нормальное решение неправильным?
Там демонстрируется как надо решать задачу, чтобы у заказчика не было тормозов после внедрения и были учтены все ситуации, а не так, чтобы программист сдал экзамен (этот момент всегда должен быть вторичным). И если программист делает так задачу, что у заказчика все падает после того, как он включил какую-то дополнительную  ФО, то такое решение является неправильным.

И где это решение не будет работать, когда серии используются или не используются?
Я приводил пример выше.

3. Да, конечно, чтобы привязаться к номеру строки, нужно его выдернуть запросом. Я к тому, что в Сообщить() - этот номер бесполезен.
Т.е. фирма 1С специально внедряет в язык 1С метод СообщитьПользователю, т. к. (в том числе) номер строки в Сообщить() бесполезен, но программист упрямо продолжает использовать Сообщить()? И такой код мы называем правильным? Занавес.

Кстати, решал аналогичную задачу на экзамене (про "плохие" серии) и все, знаете ли, удачно.
Если мне не изменяет мой склероз - "4"?. За что балл сняли?

Sergey1C

  • Пользователь
  • **
  • Сообщений: 98
  • Сергей
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #12 : Октябрь 18, 2019, 12:06:21 pm »
Ничего не имею против курса Чистова. Если там демонстрируют больше, чем требуется, то это безусловно хорошо. И нечего плохого, если это повторить на экзамене не будет.
Ну зачем называть нормальное решение неправильным?
Там демонстрируется как надо решать задачу, чтобы у заказчика не было тормозов после внедрения и были учтены все ситуации, а не так, чтобы программист сдал экзамен (этот момент всегда должен быть вторичным). И если программист делает так задачу, что у заказчика все падает после того, как он включил какую-то дополнительную  ФО, то такое решение является неправильным.

И где это решение не будет работать, когда серии используются или не используются?
Я приводил пример выше.

3. Да, конечно, чтобы привязаться к номеру строки, нужно его выдернуть запросом. Я к тому, что в Сообщить() - этот номер бесполезен.
Т.е. фирма 1С специально внедряет в язык 1С метод СообщитьПользователю, т. к. (в том числе) номер строки в Сообщить() бесполезен, но программист упрямо продолжает использовать Сообщить()? И такой код мы называем правильным? Занавес.

Кстати, решал аналогичную задачу на экзамене (про "плохие" серии) и все, знаете ли, удачно.
Если мне не изменяет мой склероз - "4"?. За что балл сняли?
Добрый день!
Не вижу смысла продолжать спор. Думаю, читателям это не очень интересно.
Вы бы лучше выложили свое правильное решение. Все бы были благодарны.

Да, заглянул в Сборник. Там в примере, действительно, используется СообщениеПользователю. При ошибке номер строки и серия выделяется.
А подписка там на ... ОбработкаПроверкиЗаполнения.

Pastor

  • Пользователь
  • **
  • Сообщений: 38
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #13 : Октябрь 19, 2019, 11:51:07 am »
А подписка там на ... ОбработкаПроверкиЗаполнения.
Так я об этом и твержу, что правильнее проверку делать в процедуре ОбработкаПроверкиЗаполнения.
С той лишь разницей, что я делал через Расширение, а не через Подписку. Смысла решать задачи через Подписку на 13-й Платформе - не вижу.
Кстати, если запрос Дарьи перенести в процедуру ОбработкаПроверкиЗаполнения, то он там на новых документах  вообще не будет работать.

Antip_Morales

  • Пользователь
  • **
  • Сообщений: 13
  • ФИО: Antin_Morales
Re: Задача 2.38 / 2.39 (Новые билеты)
« Ответ #14 : Ноябрь 06, 2019, 01:21:26 pm »
Pastor, при связи таблицы серий с таблицей дополнительных реквизитов, вы используете соединение по серия.ссылка, наименованию доп.реквизита(минимальное кол-во дней), и дополнительно соединение по виду номенклатуры?