Автор Тема: Билет 3. Спец по платформе V8  (Прочитано 140461 раз)

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

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 3. Спец по платформе V8
« Ответ #15 : Август 13, 2015, 05:50:14 pm »
В ОУ.
Списываются и приходуются остатки датой документа установки Уч политики.
Имхо, более логично началом месяца:
Цитировать
// оприходовать с партией - этот док
         Движение = Движения.ОстаткиНоменклатуры.Добавить();
         Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
         Движение.Период = НачалоМесяца(Дата);
         Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
         Движение.Партия = Ссылка;
         Движение.Количество = ВыборкаНоменклатура.КолОст;
         Движение.Сумма = ВыборкаНоменклатура.СумОст;

HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 3. Спец по платформе V8
« Ответ #16 : Сентябрь 27, 2015, 11:48:46 am »
Комментарии к билетам про Оу:

Я сделал так - приход в зависимости от метода списания - приход делается либо по пустой партии, либо в партию идет документ прихода. При списании я сделал два алгоритма - либо по среденей, либо по партиям. Получение метода, далее простое условие, если по средней, то один алгоритм и выборка, иначе - другой. Преподаватель сказал, что я сделал лишнюю работу, потерял время, так как можно было сделать одно партионное списание, но баллы не снял.
Нужно было делать так - списание чисто по партиям. Регистр учетная политика - подчинен регистратору документу СменаУчетной политики и определяется на каждый момент времени (а не даты). Далее основная идея - нет никаких пустых партий в регистре. При переходе на учетную политику по средней документ СменаУчетнойПолитики должен закрывать все партии, а делать приход на себя. То есть Партия - это документ оприходования или же документ смена учетной политики. Вот так. При проведении приходной накладной, она смотрит установленное значение метода списания, если по партиям- пишет в партию себя(ссылку), если же по средней - то из регистра получает, какой документ поставил эту учетную политику, и ставить его. Проведение - по партиям. Всё оказалось просто и легко, работает для любого момента времени, даже если документы были в одной секунде. Можно менять учетную политику много раз в любой интервал времени.


Я так понял Jones тоже пошел по первому алгоритму. А второй алгоритм кто-нибудь реализовывал?


HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 3. Спец по платформе V8
« Ответ #17 : Сентябрь 27, 2015, 12:31:01 pm »
Кстати, мне кажется здесь уместна Последовательность.
Чтобы при изменении документа УчетнаяПолитика задним числом система могла предложить восстановление последовательности.
« Последнее редактирование: Сентябрь 27, 2015, 12:42:21 pm от HRom »

HRom

  • Пользователь
  • **
  • Сообщений: 94
  • ФИО: HRom
Re: Билет 3. Спец по платформе V8
« Ответ #18 : Сентябрь 27, 2015, 12:43:15 pm »
Блин, какие блокировки поставить в документе "СменаУчетной", если он переделывает остатки партий по регистру "ОстаткиНоменклатуры"?

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #19 : Сентябрь 27, 2015, 05:19:34 pm »
Блин, какие блокировки поставить в документе "СменаУчетной", если он переделывает остатки партий по регистру "ОстаткиНоменклатуры"?
Наверняка:
                 Блок = Новый БлокировкаДанных;
       ЭлБлока = Блок.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
       ЭлБлока.Режим=РежимБлокировкиДанных.Исключительный;
       Блок.Заблокировать();
Т.е. блокировать по всем измерениям, мы ведь не знаем ни номенклатуру, ни партию для списания

zorky

  • Проверенный
  • ***
  • Сообщений: 222
  • ФИО: ЗЖВ
Re: Билет 3. Спец по платформе V8
« Ответ #20 : Сентябрь 28, 2015, 09:48:59 am »
По моему не свовсем верно, т.к. "Блокировать для изменения" - установит блок только в момент записи набора, а мы запросом считаем данные, а в это время другая транзакция спишет остатки, и у нас исказится учёт(мы уйдём в минус)/Поэтому нужно блокировать регистр ДО чтения, а не в момент записи(как в новой методике контроля).

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 3. Спец по платформе V8
« Ответ #21 : Октябрь 01, 2015, 12:16:00 am »
.....
Расчеты: Здесь все просто: Оклад, Командировка, все в ОН. Оклад получаем на начало периода.
Структура решения Расчты:
РР ОН: период действия, по базе зависит от себя же, ресурс ОтработаноЧасов. Подразделение и График связаны с регистром сведений Графики.
ПВР ОН: Оклад (вытесняется Командировкой), Командировка (база Командировка и Оклад)
.......
Возможно, не всё так просто. В задании есть фраза о совместительстве. У Вас в РР два измерения : сотрудник и подразделение. Соответственно, все будет считаться по ним  - и вытеснения и база. Т.е. Если вы укажите для командировки подразделение, то все рассчитается в разрезе подразделения. И расчеты по совместительству задействованы не будут. Фактические точно, Базу еще не проверил, но думаю там таже картина будет.
  Думается мне, выносить надо командировку в отдельный РР с одним измерением.


Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 3. Спец по платформе V8
« Ответ #22 : Октябрь 01, 2015, 10:55:54 pm »
так как думаете нужно здесь делать запрос по базе в разрезе сотрудника? Чтобы учесть начисления по всем подразделениям в базовом периоде?

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #23 : Октябрь 02, 2015, 07:52:06 am »
так как думаете нужно здесь делать запрос по базе в разрезе сотрудника? Чтобы учесть начисления по всем подразделениям в базовом периоде?
Если для командировки не учитывать подразделение, то, как минимум, не понятно, как делать отчет.
Наверное, всё же, подразделение надо оставить, и, если командировка оплачивается в обоих подразделениях, считать, что пользователь должен вводить соответствующие строки в документе "НачислениеЗарплаты" по обоим подразделениям.

Quantum81

  • Проверенный
  • ***
  • Сообщений: 117
Re: Билет 3. Спец по платформе V8
« Ответ #24 : Октябрь 02, 2015, 09:35:22 am »
Точно. Иначе и вытеснение не сработает.

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 3. Спец по платформе V8
« Ответ #25 : Октябрь 05, 2015, 08:33:41 am »
Люди, гляньте, пжл, кому не лень, решение БУ...

artemusII

  • Пользователь
  • **
  • Сообщений: 34
  • ФИО: Артем А.
Re: Билет 3. Спец по платформе V8
« Ответ #26 : Октябрь 05, 2015, 12:04:57 pm »
Итоговый вариант со всем задачами по Билету №3. Ля-Финаль, так сказать... Гляньте, кому не в лом...

pewit

  • Пользователь
  • **
  • Сообщений: 13
Re: Билет 3. Спец по платформе V8
« Ответ #27 : Октябрь 06, 2015, 02:37:55 pm »
Только начинаю подготовку к экзамену, посмотрите оперативный учет, у кого время есть, чтоб хоть определиться в том ли направлении двигаюсь. Заранее спасибо большое!

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 3. Спец по платформе V8
« Ответ #28 : Октябрь 06, 2015, 06:10:23 pm »
Только начинаю подготовку к экзамену, посмотрите оперативный учет, у кого время есть, чтоб хоть определиться в том ли направлении двигаюсь. Заранее спасибо большое!
В РН установить индексацию по измерениям.

Думаю, вы в курсе, что такое
      Тз = РезультатЗапроса.Выгрузить();
не следует оставлять в коде при сдаче экзамена.

При расчете с/с списания в расх накладной я бы посоветовал писать, например, так:
      Движение.Себестоимость = ? (ВыборкаНоменклатураТЧ.КоличествоОстаток = ВыборкаНоменклатураТЧ.КоличествоТЧ, ВыборкаНоменклатураТЧ.СебестоимостьОстаток, ВыборкаНоменклатураТЧ.СебестоимостьОстаток / ВыборкаНоменклатураТЧ.КоличествоОстаток * ВыборкаНоменклатураТЧ.КоличествоТЧ);
Вот здесь только что это обсуждали
http://forum.chistov.pro/index.php?topic=3705.msg42184#msg42184
Тем не менее, судя по практике сдачи, лучше всё же использовать такую конструкцию.

В расх накладной вот эту строку
         Пока Выборка.Следующий() Цикл,
думаю, надо дополнить
         Пока Выборка.Следующий() И НужноСписать > 0 Цикл,
иначе у вас может списаться больше нужного (вообще, в целях избежания таких ситуаций, полезно хотя бы в первое время проверять вводом большего количества данных в польз режиме).

Снова в расх накладной: нет необходимости писать отдельный код для ситуации Если Метод = Перечисления.УчетнаяПолитика.ПоСредней, т.к. вторая часть отработает в этой ситуации точно так же.

Когда последний момент смотрел, что-то непонятное в запросе увидел. Что там за итоги по партиям? По партиям уже детальные записи идут, плюс странное двойное упорядочивание  по моменту времени (хотя последнее, скорее всего - очепятка).

В документе изменения учетной политики вы делаете расход по старым партиям и приход по новым. Думаю, это не корректно, ведь никакого расхода на самом деле нет. Я делал по старым партиям приход с минусом.

В изменении учетной политики в запросе группировки не нужны, в вирт таблице вся инфа уже готова к использованию.

Технический момент, опять же в изменении учетной политики, думаю, код
      Движение = Движения.УчетнаяПолитика.Добавить();
      Движение.Период = Дата;
      Движение.УчетнаяПолитика = УчетнаяПолитика;
следует писать до условия, он же у вас просто дублируется и отрабатывает, не зависимо от соблюдения условия.

Код в начале каждого модуля, аналогичный вот этому
   Движения.ОстаткиНоменклатуры.Записывать = Истина;
   Движения.ОстаткиНоменклатуры.Записать();
комментировать не буду. Скажу лишь, что я делал как рекомендуется тут
http://1c.chistov.pro/2013/07/blog-post_25.html
вопросов не было.

Но в связи с этим еще нюанс. Вы разрешаете оперативное проведение, однако, не обрабатываете эту ситуацию. Думаю, лучше всё же запретить оперативное проведение (тогда по ссылке соответствующие проверки не делать).


ПС. Нет проверки на услуги (хотел посмотреть, не будет ли она в виде неявного запроса в цикле ) ).
« Последнее редактирование: Октябрь 06, 2015, 06:27:54 pm от alex1248 »

pewit

  • Пользователь
  • **
  • Сообщений: 13
Re: Билет 3. Спец по платформе V8
« Ответ #29 : Октябрь 08, 2015, 10:41:00 am »
Только начинаю подготовку к экзамену, посмотрите оперативный учет, у кого время есть, чтоб хоть определиться в том ли направлении двигаюсь. Заранее спасибо большое!

Когда последний момент смотрел, что-то непонятное в запросе увидел. Что там за итоги по партиям? По партиям уже детальные записи идут, плюс странное двойное упорядочивание  по моменту времени (хотя последнее, скорее всего - очепятка).


Спасибо большое за комментарий!