Автор Тема: Расхождения от актуальных билетов - обсуждения, методы решения  (Прочитано 42925 раз)

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

Bebi

  • Проверенный
  • ***
  • Сообщений: 165
По поводу использования конструктора запросов могу добавить.
В правилах экзамена сказано, что конфигурация должна работать корректно при наличии дублей строк.
Группировка в запросе решает эту проблему, конструктор запросов - нет.
И ещё.
Будет ошибкой делать следующее.
В приходной накладной, если делаете проверку в цикле,
что бы не приходовать услуги на склад.
Что-то типа "Если Номенлатура.Услуга тогда".
Обращение через точку здесь - это запрос в цикле.
За это минус.

По п.1 - это не так, если данные могут быть получены только из документа. Пример - проведение приходной накладной по регистру остатков. Даже если будет несколько строк в документе - ну будет несколько записей в регистре, какие тут проблемы.
А вот по п.2 согласен абсолютно: проверку в цикле "Если Номенлатура.Услуга тогда" однозначно убирать в запрос, т.к. фактически для каждой строки выполняется получение всех реквизитов "номенклатура" текущей строки и по большому счету это аналогично ошибке "запрос в цикле" (Белоусов на своих курсах это так и назвал). Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.



Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась

Михаил Проходцев

  • Проверенный
  • ***
  • Сообщений: 219
Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.
Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась
Выборка.Номенклатура будет содержать ссылку на элемент справочнику, ГУИД, Уникальный идентификатор, как Вам будет более понятно.
Если вам нужна именно ссылка, например, при записи в регистр, то используйте именно Выборка.Номенклатура.
Но если Вы выводите наименование номенклатуры, например через оператор Сообщить, то передавая параметром Выборка.Номенклатура в оператор Сообщить Вы заставляете систему обращаться к базе данных для получения представления поля, система же не может вывести Ссылку, вот и приходиться обращаться к базе данных для получения представления. А так как это действие выполняется в данном случае в цикле, то и получается запрос в цикле к базе данных, пускай и не явный.

Под "Выборка.НоменклатураПредставление" автор имел в виду запросом из Номенклатуры получить поле Представление (оно будет среди всех полей номенклатуры) и выводить в операторе Сообщить именно его. В данном случае Представление будет содержать Наименование элемента справочника.
« Последнее редактирование: Январь 09, 2019, 11:59:27 pm от pozitiFFF »


Bebi

  • Проверенный
  • ***
  • Сообщений: 165
Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.
Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась
Выборка.Номенклатура будет содержать ссылку на элемент справочнику, ГУИД, Уникальный идентификатор, как Вам будет более понятно.
Если вам нужна именно ссылка, например, при записи в регистр, то используйте именно Выборка.Номенклатура.
Но если Вы выводите наименование номенклатуры, например через оператор Сообщить, то передавая параметром Выборка.Номенклатура в оператор Сообщить Вы заставляете систему обращаться к базе данных для получения представления поля, система же не может вывести Ссылку, вот и приходиться обращаться к базе данных для получения представления. А так как это действие выполняется в данном случае в цикле, то и получается запрос в цикле к базе данных, пускай и не явный.

Под "Выборка.НоменклатураПредставление" автор имел в виду запросом из Номенклатуры получить поле Представление (оно будет среди всех полей номенклатуры) и выводить в операторе Сообщить именно его. В данном случае Представление будет содержать Наименование элемента справочника.

Так в итоге как нужно? много задач с выборкой, много с представлением, а как нужно  точно не ясно))

Михаил Проходцев

  • Проверенный
  • ***
  • Сообщений: 219
Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.
Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась
Выборка.Номенклатура будет содержать ссылку на элемент справочнику, ГУИД, Уникальный идентификатор, как Вам будет более понятно.
Если вам нужна именно ссылка, например, при записи в регистр, то используйте именно Выборка.Номенклатура.
Но если Вы выводите наименование номенклатуры, например через оператор Сообщить, то передавая параметром Выборка.Номенклатура в оператор Сообщить Вы заставляете систему обращаться к базе данных для получения представления поля, система же не может вывести Ссылку, вот и приходиться обращаться к базе данных для получения представления. А так как это действие выполняется в данном случае в цикле, то и получается запрос в цикле к базе данных, пускай и не явный.

Под "Выборка.НоменклатураПредставление" автор имел в виду запросом из Номенклатуры получить поле Представление (оно будет среди всех полей номенклатуры) и выводить в операторе Сообщить именно его. В данном случае Представление будет содержать Наименование элемента справочника.

Так в итоге как нужно? много задач с выборкой, много с представлением, а как нужно  точно не ясно))
В операторе Сообщить однозначно использовать не ссылку, а представление объекта.

Bebi

  • Проверенный
  • ***
  • Сообщений: 165
Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.
Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась
Выборка.Номенклатура будет содержать ссылку на элемент справочнику, ГУИД, Уникальный идентификатор, как Вам будет более понятно.
Если вам нужна именно ссылка, например, при записи в регистр, то используйте именно Выборка.Номенклатура.
Но если Вы выводите наименование номенклатуры, например через оператор Сообщить, то передавая параметром Выборка.Номенклатура в оператор Сообщить Вы заставляете систему обращаться к базе данных для получения представления поля, система же не может вывести Ссылку, вот и приходиться обращаться к базе данных для получения представления. А так как это действие выполняется в данном случае в цикле, то и получается запрос в цикле к базе данных, пускай и не явный.

Под "Выборка.НоменклатураПредставление" автор имел в виду запросом из Номенклатуры получить поле Представление (оно будет среди всех полей номенклатуры) и выводить в операторе Сообщить именно его. В данном случае Представление будет содержать Наименование элемента справочника.

Так в итоге как нужно? много задач с выборкой, много с представлением, а как нужно  точно не ясно))
В операторе Сообщить однозначно использовать не ссылку, а представление объекта.
Спасибо большое за помощь, вижу многим здесь помогаете))

Bebi

  • Проверенный
  • ***
  • Сообщений: 165
Аналогично при выводе ошибки, например Сообщить("по номенклатуре " + Выборка.Номенклатура " не хватает остатка"); нужно выводить НоменклатураПредставление, полученное в запросе, иначе при выводе в сообщении Выборка.Номенклатура - это неявный запрос к базе данных в цикле.
Что значит представление?? Привыкла обращаться выборка.Номенклатура, теперь запуталась
Выборка.Номенклатура будет содержать ссылку на элемент справочнику, ГУИД, Уникальный идентификатор, как Вам будет более понятно.
Если вам нужна именно ссылка, например, при записи в регистр, то используйте именно Выборка.Номенклатура.
Но если Вы выводите наименование номенклатуры, например через оператор Сообщить, то передавая параметром Выборка.Номенклатура в оператор Сообщить Вы заставляете систему обращаться к базе данных для получения представления поля, система же не может вывести Ссылку, вот и приходиться обращаться к базе данных для получения представления. А так как это действие выполняется в данном случае в цикле, то и получается запрос в цикле к базе данных, пускай и не явный.

Под "Выборка.НоменклатураПредставление" автор имел в виду запросом из Номенклатуры получить поле Представление (оно будет среди всех полей номенклатуры) и выводить в операторе Сообщить именно его. В данном случае Представление будет содержать Наименование элемента справочника.

Так в итоге как нужно? много задач с выборкой, много с представлением, а как нужно  точно не ясно))
В операторе Сообщить однозначно использовать не ссылку, а представление объекта.
хотела Вас попросить посмотреть билет, только ОУ, так как по нему у меня и моих коллег есть разногласия..кто то говорит нужно константу создавать для хранения даты самого раннего документа, требующего допроведения. Документ сравнивает свою дату с датой, сохранённой константе, и, если его дата более ранняя (или если константа вообще не содержит даты), сохранит в константе свою дату. Точнее не дату, а моментВремени. А так как константы не могут иметь такой тип, поэтому, определяем не самый первый документ, а самую раннюю дату.
кто то говорит надо в общем модуле рассчитывать себестоимость, а кто то в расходной. И меня все путают, вот лучше у Вас узнаю

Михаил Проходцев

  • Проверенный
  • ***
  • Сообщений: 219
хотела Вас попросить посмотреть билет, только ОУ, так как по нему у меня и моих коллег есть разногласия..кто то говорит нужно константу создавать для хранения даты самого раннего документа, требующего допроведения. Документ сравнивает свою дату с датой, сохранённой константе, и, если его дата более ранняя (или если константа вообще не содержит даты), сохранит в константе свою дату. Точнее не дату, а моментВремени. А так как константы не могут иметь такой тип, поэтому, определяем не самый первый документ, а самую раннюю дату.
кто то говорит надо в общем модуле рассчитывать себестоимость, а кто то в расходной. И меня все путают, вот лучше у Вас узнаю
Давайте будем стараться вопросы задавать в соответствующих тематических ветках. Эта ветка касается расхождений в билетах на экзамене от ожидаемых и методов их решения. Иначе тему превратим в мусорку. Продублируйте Ваш вопрос, например, в обсуждении первого билета или другой ветке общих вопросов. Я посмотрю.

Bebi

  • Проверенный
  • ***
  • Сообщений: 165
хотела Вас попросить посмотреть билет, только ОУ, так как по нему у меня и моих коллег есть разногласия..кто то говорит нужно константу создавать для хранения даты самого раннего документа, требующего допроведения. Документ сравнивает свою дату с датой, сохранённой константе, и, если его дата более ранняя (или если константа вообще не содержит даты), сохранит в константе свою дату. Точнее не дату, а моментВремени. А так как константы не могут иметь такой тип, поэтому, определяем не самый первый документ, а самую раннюю дату.
кто то говорит надо в общем модуле рассчитывать себестоимость, а кто то в расходной. И меня все путают, вот лучше у Вас узнаю
Давайте будем стараться вопросы задавать в соответствующих тематических ветках. Эта ветка касается расхождений в билетах на экзамене от ожидаемых и методов их решения. Иначе тему превратим в мусорку. Продублируйте Ваш вопрос, например, в обсуждении первого билета или другой ветке общих вопросов. Я посмотрю.
Хорошо