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

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

User_OKA

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Валерий
Задача 1.11
« Ответ #45 : Август 30, 2010, 08:08:11 pm »
Тему я читал 8.1 и 8.2 - на этот вопрос ответа не нашел.

Два реквизита в заказе должно быть?!


SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.11
« Ответ #46 : Август 30, 2010, 08:39:35 pm »
User_OKA, Две колонки в ЧТ ЗаказПокупателя....сообщение №8 и №38


User67

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Юрий
Задача 1.11
« Ответ #47 : Сентябрь 01, 2010, 05:03:40 pm »
Здравствуйте! Помогите разобраться! В этой задаче я запутался со следующими противоречиями- Отгрузка по Заказу может производится с разных складов. Но в документе Расходная склад один. Следовательно по одному Заказу может быть несколько расходных. Но ниже написано Предполагается, что Заказ может быть отгружен полностью. Таким образом надо ли контролировать сколько заказали и сколько отгружают и нет ли превышения? По тексту задания такого нет.

Gosha009

  • Пользователь
  • **
  • Сообщений: 26
Re: Задача 1.11
« Ответ #48 : Октябрь 28, 2015, 10:40:54 am »
Мое решение

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.11
« Ответ #49 : Июнь 20, 2017, 03:09:57 pm »
Всем привет. Просмотрел много решений и нигде не нашел как записывается самый первый документ ЗаказПокупателя. Ведь по нему остаток "0", а значит и запись не произойдет...никогда) Поэтому решил данную проблему через физическую таблицу. Так же в отчете не получается вывести колонку "Резерв" последней, даже если сделать поле Порядок в запросе, хотя на уровне запроса записи сортируются верно, а вот СКД их все равно выводить по алфавиту.

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.11
« Ответ #50 : Июнь 23, 2017, 10:39:59 am »
Всем привет. Просмотрел много решений и нигде не нашел как записывается самый первый документ ЗаказПокупателя. Ведь по нему остаток "0", а значит и запись не произойдет...никогда) Поэтому решил данную проблему через физическую таблицу. Так же в отчете не получается вывести колонку "Резерв" последней, даже если сделать поле Порядок в запросе, хотя на уровне запроса записи сортируются верно, а вот СКД их все равно выводить по алфавиту.

Извиняюсь, перемудрил, в запросе для Обработки проведения документа ЗаказПокупателя 2 последних пакетных запроса лишние)

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.11
« Ответ #51 : Июнь 23, 2017, 10:43:22 am »
Всем привет. Просмотрел много решений и нигде не нашел как записывается самый первый документ ЗаказПокупателя. Ведь по нему остаток "0", а значит и запись не произойдет...никогда) Поэтому решил данную проблему через физическую таблицу. Так же в отчете не получается вывести колонку "Резерв" последней, даже если сделать поле Порядок в запросе, хотя на уровне запроса записи сортируются верно, а вот СКД их все равно выводить по алфавиту.

Упорядочивание по полю порядок нужно делать на уровне настроек СКД(Выражение упорядочивания для Склада)

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.11
« Ответ #52 : Декабрь 01, 2017, 11:47:05 am »
Всем привет. Просмотрел много решений и нигде не нашел как записывается самый первый документ ЗаказПокупателя. Ведь по нему остаток "0", а значит и запись не произойдет...никогда) Поэтому решил данную проблему через физическую таблицу. Так же в отчете не получается вывести колонку "Резерв" последней, даже если сделать поле Порядок в запросе, хотя на уровне запроса записи сортируются верно, а вот СКД их все равно выводить по алфавиту.

Упорядочивание по полю порядок нужно делать на уровне настроек СКД(Выражение упорядочивания для Склада)
Подкорректировал

Холодный Тимофей

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Тимофей Александрович Холодный
Re: Задача 1.11
« Ответ #53 : Апрель 23, 2021, 12:45:22 pm »
Коллеги, всем доброго дня!
На экзамене есть требование - все документы явно описаны в задаче. Таким образом никаких других документов создавать нельзя, кроме тех, что явно описаны в условии.
Тут много говорят о приходных накладных, но их в условии нет. А значит и документа такого быть не должно.
Я не понимаю, каким документом фиксируют поступление товара на склад? Может кто-нибудь это прояснить?

MaxDen

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.11
« Ответ #54 : Май 21, 2021, 05:55:53 am »
Мой вариант решения. Приходная накладная есть, ее не может не быть. Единый запрос в расходной накладной, и один проход. Отчет с макетом.

Холодный Тимофей

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Тимофей Александрович Холодный
Re: Задача 1.11
« Ответ #55 : Май 21, 2021, 11:31:28 am »
Мой вариант решения. Приходная накладная есть, ее не может не быть. Единый запрос в расходной накладной, и один проход. Отчет с макетом.
Это не касается задач из Сборника, но на экзамене использование документа явно не описанного в условии сразу минус 1 балл. Причем в ОУ учете документ может быть (та же приходная), а БУ ее не будет, значит ее для БУ использовать нельзя. Как-то так.
А задачку я решал тоже с приходной накладной.

MaxDen

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.11
« Ответ #56 : Май 24, 2021, 04:35:08 am »
Да в требованиях к экзамену есть такое условие. Но в данной задаче, это скорее ошибка постановки задачи. Ведь  если нет  приходных документов, то все остальное тогда нерешаемо и не имеет логики. А задачи все-таки имеют логическое завершение.

Холодный Тимофей

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Тимофей Александрович Холодный
Re: Задача 1.11
« Ответ #57 : Май 24, 2021, 11:43:40 am »
Мой вариант решения. Приходная накладная есть, ее не может не быть. Единый запрос в расходной накладной, и один проход. Отчет с макетом.
Основные недостатки на мой нетребовательный взгляд:
1. Везде отсутствуют индексы во временных таблицах. Это ошибка.
2. Приходная накладная - в таблицу движений регистра попадают дубли строк табличной части. Нет группировки.
3. Заказ покупателя - тоже самое. Проверка на превышение резерва над количеством в заказе реализована с выгрузкой в ТЗ. Это ошибка.
Тут достаточно обойти строки ТЧ в цикле и сравнить резерв и количество. Выдать ошибку. Группировать не надо - это не формирование движений. Да и необходимость для пользователя в одной строке указать резерв больше заказа и в другой меньше, да так чтобы в сумме было все ок, весьма сомнительна. Ради этого выгружать в ТЗ - экзаменатору не объясните, ведь можно было этого избежать.
Очень сомнительно использовать соединение с таблицей справочника номенклатура для получения представления ссылки на элемент этого справочника. Есть функция ПРЕДСТАВЛЕНИЕ языка запросов 1С, которую можно использовать для получения представления ссылки, есть в конце концов значение, получаемое через точку от ссылки - Ссылка.Представление. Они немного по разному работают, но все же.

4. Расходная накладная. Ввод на основании реализован так же с выгрузкой в ТЗ, ошибка. На экзамене нужно этого по максимуму избегать, если не можете необходимость выгрузки аргументировать.
Регистр "Резервы"
Использована традиционная методика проведения, а нужна новая. Поэтому записывать пустой набор в этот регистр тоже излишне.
Для формирования движений данные из регистра не нужны. Их можно получить уже после записи и осуществить контроль отрицательных остатков. Причем тут даже отказа не будет.
В реализованном Вами решении Количество пишется равное количеству в резерве, однако списываться может и меньшее количество товара, те по заказу может оставаться товар в резерве после списания расходной накладной.
Регистр Остатки
Блокировка по складу на мой взгляд не нужна. Да, в этом случае заблокируется меньше записей РН, однако необходимо получить общий остаток по всем складам и вычислить свободный остаток перед формированием движений документа. Это соображение приводит к тому, что необходимо блокировать все записи с номенклатурой из ТЧ по всем складам. Потому что конкурирующая транзакция может изменить остаток на другом складе, таким образом изменится и свободный остаток, чего нам допустить нельзя.
Вы интересно реализовали условие по расходной, которая может быть введена только на основании заказа покупателя. В форме обрабатывается событие изменения поля ввода ЗаказКлиента. Однако при беглом осмотре в режиме исполнения в заказе кнопки "создать на основании" не нашел, а в расходной нашел. При чем создается заказ на основании расходной накладной. 
Я просто запретил пользователю редактировать это поле и добавлять строки в табличную часть. Реализацию можно ввести только на основании заказа.
Вроде все написал. Работоспособность самого решения не проверял, смотрел только код и конфигурацию.
« Последнее редактирование: Май 24, 2021, 12:27:28 pm от Холодный Тимофей »

MaxDen

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.11
« Ответ #58 : Май 25, 2021, 03:33:17 am »
Ок. Спасибо за развернутую рецензию.
1. Про индексы в временных таблицах полностью согласен, и знаю про эту ошибку, поторопился с выкладкой.
2. Есть такое требование, но при этом задачи которые решаются на курсах по подготовке, и в той которая разобрана в решебнике (сейчас нет под рукой) нигде не используется группировка, у простых движений. Кажется сейчас упростили требования к экзамену в этой части.
3. Да мотивация именно такая и была, сгруппировать. По левому соединению, спрашивал у Белоусова, ошибкой не является. Можно через точку, можно соединение. В данном случае из-за использования конструктора и таблицы, обращение через точку вызывает ошибку (конструктор как-то неправильно ее в текст запроса добавляет, сразу в описание таблицы)
4. Блокировка по складу, ошибка. В решении вообще не реализован контроль по резерву, исходил из  того что явно не указанно в задаче о его необходимости, отсюда и выбранная старая методика проведения. Ключевым словом тут было "Предполагается что заказ будет отгружен полностью", поэтому не рассматривается вариант когда отгружено будет меньше или больше чем в заказе, и резервы закрываются по заказу полностью. Так же по этой причине не стал реализовывать блокировки ввода в форме. Про "создать на основании" не понял, стандартная команда ввода на основании, никакой особой логики не закладывалось, сделано для упрощения ввода данных. Согласен можно было без выгрузки в ТЗ.

p.s. Касательно вашего вопроса.  Сейчас посмотрел на вводное слово в решебнике есть такая фраза : " Так, если в задании указано только как списывается товар, то механизм его поступления решающий может выбрать самостоятельно."

p.s.s Непонятна ситуация с таблицами значений, вроде бы инструмент созданный для упрощения и ускорения разработки, но при этом использование его сразу минус, точнее "необоснованное использование", другими словами одну строчку с использованием ТЗ заменяем на алгоритм (а алгоритмов можно придумать кучу), в котором опять же могут быть ошибки... но таковы требования экзамена. Вы не решали задачу 1.8 ? Решил ее без использования ТЗ, но уж очень не нравится как выглядит.

Холодный Тимофей

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Тимофей Александрович Холодный
Re: Задача 1.11
« Ответ #59 : Май 25, 2021, 11:03:48 am »
Цитировать
Вы не решали задачу 1.8 ? Решил ее без использования ТЗ, но уж очень не нравится как выглядит.
Решал, тоже без ТЗ. Там можно просто передать выборку из запроса в модуль обработки заполнения документа. Это очень удобно.
Используйте метод ЗаполнитьЗначенияСвойств(). Тоже значительно сокращает код.
Касательно этих выгрузок на курсах Павел Станиславович доводил, что необходимо будет обосновывать.
Это продиктовано тем, что объем серверной RAM ограничен, поэтому будет приучать нас писать оптимальный код именно с этой точки зрения.
На курсах выгрузки в ТЗ использовали только в некоторых задачах СПР.