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

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

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.01
« Ответ #30 : Декабрь 10, 2010, 09:35:05 pm »
Vlastmen, как быть с примером из задачника? Будем считать что там процедура ОбработкаПроведения некорректна???

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #31 : Декабрь 12, 2010, 01:26:32 am »
AndreiPiter, Выложи ихний модуль проведения Расходной, что то не верится, что они движения не удаляют, если речь о старой методике.

Добавлено (12.12.2010, 01:26)
---------------------------------------------
Очищать движения можно как методом Очистить(), так и Записать() (в начале обработки проведения, записывая пустой набор). Вместе применять их для очистки смысла нет



AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.01
« Ответ #32 : Декабрь 12, 2010, 12:11:28 pm »
SergTH000, вот пример решения из задачника
Вложения:
9636301.dt

Vlastmen

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #33 : Декабрь 12, 2010, 04:48:31 pm »
SergTH000, не совсем так. Зачем применять очистить() если набор записей изначально не считан из регистра?
 Разве что считать набор старых движений методом Прочитать() потом Очистить() и потом Записать() (ведь если не записать то на момент получения остатков они учтутся если дата увеличилась) и получается что проще и оптимальнее записать сразу методом Записать()

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #34 : Декабрь 12, 2010, 06:05:30 pm »
Vlastmen, для метода очистить() не нужно предварительно использовать прочитать(). Очистить() удалит существующие движения.

Vlastmen

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #35 : Декабрь 13, 2010, 08:42:19 am »
SergTH000, из регистра он их удалит только в конце процедуры проведения (если Запись движений при проведении = "Записывать модифицированные" ИЛИ (Запись движений при проведении = "Записывать выбранные" И НаборЗаписей.Записывать = Истина)) На момент получения остатков удалятся записи только из набора, в регистре ничего не изменится пока не применить метод Записать().

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.01
« Ответ #36 : Декабрь 17, 2010, 03:56:41 pm »
Quote (AndreiPiter)
SergTH000, вот пример решения из задачника
 Прикрепления: 9636301.dt(251Kb)

 что-то как-то сложно... устал читать smile

соглашусь с Vlastmen, документ должен при любых проведениях считать корректно. А вот почему этого нет в примере, это вопрос.

« Последнее редактирование: Декабрь 17, 2010, 04:08:51 pm от Олег »

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.01
« Ответ #37 : Декабрь 17, 2010, 07:55:39 pm »
Quote (Gyd)
соглашусь с Vlastmen, документ должен при любых проведениях считать корректно. А вот почему этого нет в примере, это вопрос.

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

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.01
« Ответ #38 : Декабрь 20, 2010, 09:27:31 am »
Quote (AndreiPiter)
Задумайтесть, даже если вы поставите удалять движения в начале и документ станет проводится (т.е по остаткам будет всё нормально), то состояние учёта на момент проведения документа будет неверным

 что-то не пойму о чём вы.

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.01
« Ответ #39 : Декабрь 20, 2010, 08:50:04 pm »
Gyd, скажем у нас есть Документ1, Документ2 (в хронологическом порядке)
 мы перепроводим Документ1 будущим числом. т.е теперь Документ2, Документ1
 на момент времени Документ1 состояние учёта неверно (по количеству списали правильно, а по себестоимости/партии нет).
 Нужно корректно препровети последовательность Документ2, Документ1

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.01
« Ответ #40 : Декабрь 21, 2010, 10:16:42 am »
Quote (AndreiPiter)
то состояние учёта на момент проведения документа будет неверным
а вы попробуйте не нарушать последовательность: есть Док1 и Док2, перепроведите Док2 будущей датой, последовательность не нарушена,а остатки Док2 на момент проведения получает неправильные. Это если движения не очищать.

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.01
« Ответ #41 : Декабрь 21, 2010, 07:46:41 pm »
Gyd, конечно, но это всего лишь частный случай.

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.01
« Ответ #42 : Декабрь 22, 2010, 03:22:12 pm »
Набросал примерную схему того что нужно сделать в модуле проведения, типа шпаргалки, поправьте пожалуйста или дополните, глядишь кому-нибудь пригодится:

Предварительные:
 1. Очистить движения документа по регистру.
 2. Включить/выключить формирования движений по регистру (св-во набора записей Записывать).
 3. Блокировка данных регистра.

В запросе:
 1. Сгруппировать строки табличной части документа для правильного списания номенклатуры.
 2. Установить параметры для виртуальных таблиц (фильтры для быстрого получения данных).
 3. Применить при необходимости функцию ЕСТЬNULL для получаемых числовых значений (избавиться от ошибок при получении пустых значений).

Списание товара:
 1. Реализовать правильное списание сумм (чтоб не зависали копейки).
 2. Вывод записей регистра в "ноль" (отсутствие лишних записей в регистре).
 3. Вывод сообщений пользователю при нехватке/отсутствии товара и отменить проведение документа.
 4. Добавить, при желании, измерение Себестоимость в регистр Продажи (для отчета).

« Последнее редактирование: Декабрь 22, 2010, 03:23:10 pm от Олег »

RomanKokarev

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Roman
Задача 1.01
« Ответ #43 : Декабрь 29, 2010, 03:38:45 pm »
Привет.
 Посмотрел вариант Heckfy.
 Подскажите, зачем в параметрах виртуальной таблицы ОстаткиНомеклатуры.Обороты в условии пишем вот это: Номенклатура В
    (ВЫБРАТЬ
       Расходная.Номенклатура
    ИЗ
       Расходная КАК Расходная).

RAINman

  • Пользователь
  • **
  • Сообщений: 15
  • ФИО: Павлов Вадим Александрович
Задача 1.01
« Ответ #44 : Декабрь 29, 2010, 03:57:30 pm »
RomanKokarev, дабы результатом запроса вернулись лишь обороты по номенклатуре из документа