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

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

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 1. Спец по платформе V8
« Ответ #420 : Март 24, 2017, 11:51:20 am »
Сорри, кажется я всех слегка обманываю по поводу методик проведения. Но это касается только задачи ОУ из 1 билета.
Уже много забыл, и суть этой задачи подзабыл (сейчас перечитал).
Тут же 2-й регистр создается не ради новой методики, а из-за того, что себестоимость и количество учитываются в разных разрезах. Т.е. 2 регистра по-любому. И действительно похоже на новую методику контроля остатков, а уже затем - расчет себестоимости по 2-му регистру.

В тему. Вот что писали по поводу ответа Белоусова на тех же курсах на вопрос, имеющий отношение к данному: "БУ, ОУ: больная тема - количество регистров. Делайте сколько хотите, только вы должны обосновать почему у вас 2-3-4, а не один например. Плюсы, минусы: один хорошо, но есть ограничение по кол-ву измерений и индексированию. Два и больше плохо с точки зрения синхронизации, запись данных при проведении идет в несколько регистров и есть вероятность ошибиться в этом процессе. Грубо говоря, в один записали - в другой забыли, ну и прочее. Будьте готовы к вопросу: а можно обойтись одним регистром?.
Вот первоисточник (п. 6):
http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307

Но в данном случае одним регистром не обойтись, потому делаем новую (на том регистре себестоимость рассчитывать не надо).

Еще раз всем сорри за ввод в заблуждение. Думаю, что теперь у тех, кто читал внимательно, по вопросу методики списания вопросов не должно быть вообще.
Разве что xXeNoNx подкинет новую инфу по результатам посещения курсов.  :)
« Последнее редактирование: Март 24, 2017, 11:55:10 am от alex1248 »

CeHbKA

  • Пользователь
  • **
  • Сообщений: 88
Re: Билет 1. Спец по платформе V8
« Ответ #421 : Март 24, 2017, 12:58:29 pm »
Сорри, кажется я всех слегка обманываю по поводу методик проведения. Но это касается только задачи ОУ из 1 билета.
Уже много забыл, и суть этой задачи подзабыл (сейчас перечитал).
Тут же 2-й регистр создается не ради новой методики, а из-за того, что себестоимость и количество учитываются в разных разрезах. Т.е. 2 регистра по-любому. И действительно похоже на новую методику контроля остатков, а уже затем - расчет себестоимости по 2-му регистру.

В тему. Вот что писали по поводу ответа Белоусова на тех же курсах на вопрос, имеющий отношение к данному: "БУ, ОУ: больная тема - количество регистров. Делайте сколько хотите, только вы должны обосновать почему у вас 2-3-4, а не один например. Плюсы, минусы: один хорошо, но есть ограничение по кол-ву измерений и индексированию. Два и больше плохо с точки зрения синхронизации, запись данных при проведении идет в несколько регистров и есть вероятность ошибиться в этом процессе. Грубо говоря, в один записали - в другой забыли, ну и прочее. Будьте готовы к вопросу: а можно обойтись одним регистром?.
Вот первоисточник (п. 6):
http://forum.chistov.pro/index.php?topic=2005.msg22307#msg22307

Но в данном случае одним регистром не обойтись, потому делаем новую (на том регистре себестоимость рассчитывать не надо).

Еще раз всем сорри за ввод в заблуждение. Думаю, что теперь у тех, кто читал внимательно, по вопросу методики списания вопросов не должно быть вообще.
Разве что xXeNoNx подкинет новую инфу по результатам посещения курсов.  :)
Вот те раз, почему же в решении SAE он сделал т.к. вы до этого говорили?
Т.е. там 2 регистра, один на количество, один на стоимость. Списание он делает по старой методике и в одном запросе считывает остатки по количеству и левым соединением стоимость подцепляет.


Kremlin

  • Пользователь
  • **
  • Сообщений: 37
Re: Билет 1. Спец по платформе V8
« Ответ #422 : Март 24, 2017, 01:11:36 pm »
совсем запутали  >:(
Мне кажется, что для первого регистра(с количеством который) используем новую методику. (БлокироватьДляИзменения=Истина)
А для регистра с себестоимостью используем старую методику.(Объект БлокировкаДанных)
Разве нет?

CyberGirl

  • Пользователь
  • **
  • Сообщений: 13
Re: Билет 1. Спец по платформе V8
« Ответ #423 : Март 24, 2017, 01:40:30 pm »
Да, в этой задаче нужно два регистра
1. ОстаткиНоменклатуры изм. Номенклатура, Склад рес. К-во Новая методика!
2. Себестоимость изм. Номенклатура, Партия рес. К-во, Сумма Старая методика.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 1. Спец по платформе V8
« Ответ #424 : Март 24, 2017, 04:10:57 pm »
Вот те раз, почему же в решении SAE он сделал т.к. вы до этого говорили?
Т.е. там 2 регистра, один на количество, один на стоимость. Списание он делает по старой методике и в одном запросе считывает остатки по количеству и левым соединением стоимость подцепляет.
Думаю, тоже норм.

Kremlin

  • Пользователь
  • **
  • Сообщений: 37
Re: Билет 1. Спец по платформе V8
« Ответ #425 : Март 27, 2017, 07:10:19 am »
Всем доброго дня! У меня проблема с выполнением бух.задачи - когда провожу Приходную накладную с одним товаром в виртуальную таблицу "УправленческийОстатки" на счет "Товары" создается одна запись. Хотя в плане счетов сделал "Признак учета субконто" суммовой и назначил его на Субконто1 "Номенклатура". За образец брал решение SAE, у него делается две записи в виртуальную таблицу - сумма падает на Субконто1 Номенклатура, а Количество на субконто2 "Серию". Подскажите, что может быть не так в моем решении? На всякий случай прикреплю выгрузку свою.

Нашел, как обойти этот глюк.
Взял каркасную конфу, и перед настройкой плана счетов, регистра бух поставил в конфигурации режим совместимости 8.3.3.
После этого движения начали делаться верно, отрабатывает "Признак учета субконто".

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 1. Спец по платформе V8
« Ответ #426 : Март 27, 2017, 08:35:57 am »
Делаю дополнительное задание билета 1. Отображение результатов расчета в форме начисления зарплаты  с целью редактирования. Сделал как здесь http://forum.chistov.pro/index.php?topic=3953.0. Но потом подумал и немножко упростил. Почему так делать не стоит?

Dmitri-Dmitrich

  • Пользователь
  • **
  • Сообщений: 20
Re: Билет 1. Спец по платформе V8
« Ответ #427 : Март 27, 2017, 10:01:17 am »
Делаю дополнительное задание билета 1. Отображение результатов расчета в форме начисления зарплаты  с целью редактирования. Сделал как здесь http://forum.chistov.pro/index.php?topic=3953.0. Но потом подумал и немножко упростил. Почему так делать не стоит?
Не могу открыть Вашу выгрузку чтобы посмотреть) Поставьте режим совместимости 8.3.9

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 1. Спец по платформе V8
« Ответ #428 : Март 27, 2017, 11:02:02 am »
8.3.9

Dmitri-Dmitrich

  • Пользователь
  • **
  • Сообщений: 20
Re: Билет 1. Спец по платформе V8
« Ответ #429 : Март 27, 2017, 11:16:22 am »
8.3.9
Посмотрел Ваше решение, вот что выявил: в условии сказано, что кнопка "Рассчитать"сделана с целью редактирования результатов расчета. У Вас же, при проведении документа, независимо от того что находится в документе, в регистр попадают результаты авторасчета. То есть если пользователя не устроил расчет зарплаты, он мог его откорректировать, а он этого не может сделать. Я думаю нужно сделать, чтобы при проведении записывались результаты из формы, а при нажатии "рассчитать" просто рассчитывались записи и не попадали в регистр (для этого и нужна транзакция).

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 1. Спец по платформе V8
« Ответ #430 : Март 27, 2017, 11:47:22 am »
8.3.9
Посмотрел Ваше решение, вот что выявил: в условии сказано, что кнопка "Рассчитать"сделана с целью редактирования результатов расчета. У Вас же, при проведении документа, независимо от того что находится в документе, в регистр попадают результаты авторасчета. То есть если пользователя не устроил расчет зарплаты, он мог его откорректировать, а он этого не может сделать. Я думаю нужно сделать, чтобы при проведении записывались результаты из формы, а при нажатии "рассчитать" просто рассчитывались записи и не попадали в регистр (для этого и нужна транзакция).



Ну можно и в транзакцию обернуть не суть важно.
Изначально функция рассчитать в модуле формы такая:

Процедура Рассчитать() Экспорт

НачатьТранзакцию();

Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записывать=Истина;
Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записывать=Истина;

Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             | НачислениеЗарплатыОсновныеНачисления.Сотрудник,
             | НачислениеЗарплатыОсновныеНачисления.Подразделение,
             | НачислениеЗарплатыОсновныеНачисления.ВидРасчета,
             | НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ПериодДействияНачало,
             | КОНЕЦПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.ДатаОкончания, ДЕНЬ) КАК ПериодДействияКонец,
             | НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.ДатаНачала, МЕСЯЦ) КАК НачалоРасчетногоПериода,
             | НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации,
             | НачислениеЗарплатыОсновныеНачисления.График
             |ПОМЕСТИТЬ ТабЧастьОклад
             |ИЗ
             | Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
             |ГДЕ
             | НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаОклад
             | И НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////
             |ВЫБРАТЬ
             | ТабЧастьОкладСМаксПериодомОклада.Сотрудник,
             | ТабЧастьОкладСМаксПериодомОклада.Подразделение,
             | ТабЧастьОкладСМаксПериодомОклада.ВидРасчета,
             | ТабЧастьОкладСМаксПериодомОклада.ПериодДействияНачало,
             | ТабЧастьОкладСМаксПериодомОклада.ПериодДействияКонец,
             | ТабЧастьОкладСМаксПериодомОклада.ПериодРегистрации,
             | ЕСТЬNULL(СведенияОСотрудниках.Оклад, 0) КАК Параметр,
             | ТабЧастьОкладСМаксПериодомОклада.График
             |ИЗ
             | (ВЫБРАТЬ
             | ТабЧастьОклад.Сотрудник КАК Сотрудник,
             | ТабЧастьОклад.Подразделение КАК Подразделение,
             | ТабЧастьОклад.ВидРасчета КАК ВидРасчета,
             | ТабЧастьОклад.ПериодДействияНачало КАК ПериодДействияНачало,
             | ТабЧастьОклад.ПериодДействияКонец КАК ПериодДействияКонец,
             | ТабЧастьОклад.НачалоРасчетногоПериода КАК НачалоРасчетногоПериода,
             | ТабЧастьОклад.ПериодРегистрации КАК ПериодРегистрации,
             | МАКСИМУМ(СведенияОСотрудниках.Период) КАК МаксимальныйПериод,
             | ТабЧастьОклад.График КАК График
             | ИЗ
             | ТабЧастьОклад КАК ТабЧастьОклад
             | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
             | ПО ТабЧастьОклад.Сотрудник = СведенияОСотрудниках.Сотрудник
             | И ТабЧастьОклад.Подразделение = СведенияОСотрудниках.Подразделение
             | И ТабЧастьОклад.НачалоРасчетногоПериода >= СведенияОСотрудниках.Период
             |
             | СГРУППИРОВАТЬ ПО
             | ТабЧастьОклад.Сотрудник,
             | ТабЧастьОклад.Подразделение,
             | ТабЧастьОклад.ПериодДействияКонец,
             | ТабЧастьОклад.НачалоРасчетногоПериода,
             | ТабЧастьОклад.ПериодРегистрации,
             | ТабЧастьОклад.ПериодДействияНачало,
             | ТабЧастьОклад.ВидРасчета,
             | ТабЧастьОклад.График) КАК ТабЧастьОкладСМаксПериодомОклада
             | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
             | ПО ТабЧастьОкладСМаксПериодомОклада.Сотрудник = СведенияОСотрудниках.Сотрудник
             | И ТабЧастьОкладСМаксПериодомОклада.Подразделение = СведенияОСотрудниках.Подразделение
             | И ТабЧастьОкладСМаксПериодомОклада.МаксимальныйПериод = СведенияОСотрудниках.Период
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////
             |ВЫБРАТЬ
             | ТабЧастьПремияСРассчитаннымСтажом.Сотрудник,
             | ТабЧастьПремияСРассчитаннымСтажом.Подразделение,
             | ТабЧастьПремияСРассчитаннымСтажом.ВидРасчета,
             | ТабЧастьПремияСРассчитаннымСтажом.ПериодРегистрации,
             | ЕСТЬNULL(ПроцентыПремии.Процент, 0) КАК Параметр,
             | ТабЧастьПремияСРассчитаннымСтажом.БазовыйПериодНачало КАК БазовыйПериодНачало,
             | ТабЧастьПремияСРассчитаннымСтажом.БазовыйПериодКонец КАК БазовыйПериодКонец,
             | ТабЧастьПремияСРассчитаннымСтажом.Стаж КАК Стаж
             |ИЗ
             | (ВЫБРАТЬ
             | НачислениеЗарплатыДопНачисления.Сотрудник КАК Сотрудник,
             | НачислениеЗарплатыДопНачисления.Подразделение КАК Подразделение,
             | НачислениеЗарплатыДопНачисления.ВидРасчета КАК ВидРасчета,
             | НАЧАЛОПЕРИОДА(НачислениеЗарплатыДопНачисления.МесяцНачисления, МЕСЯЦ) КАК БазовыйПериодНачало,
             | КОНЕЦПЕРИОДА(НачислениеЗарплатыДопНачисления.МесяцНачисления, МЕСЯЦ) КАК БазовыйПериодКонец,
             | РАЗНОСТЬДАТ(НачислениеЗарплатыДопНачисления.Сотрудник.ДатаПриема, &ПериодРегистрации, ГОД) + НачислениеЗарплатыДопНачисления.Сотрудник.НачальныйСтаж КАК Стаж,
             | НАЧАЛОПЕРИОДА(НачислениеЗарплатыДопНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации
             | ИЗ
             | Документ.НачислениеЗарплаты.ДопНачисления КАК НачислениеЗарплатыДопНачисления
             | ГДЕ
             | НачислениеЗарплатыДопНачисления.Ссылка = &Ссылка
             | И НачислениеЗарплатыДопНачисления.ВидРасчета = &ВидРасчетаПремия) КАК ТабЧастьПремияСРассчитаннымСтажом
             | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентыПремии КАК ПроцентыПремии
             | ПО ТабЧастьПремияСРассчитаннымСтажом.Стаж >= ПроцентыПремии.СтажОт
             | И ТабЧастьПремияСРассчитаннымСтажом.Стаж < ПроцентыПремии.СтажДо";

Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВидРасчетаОклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад);
Запрос.УстановитьПараметр("ВидРасчетаПремия", ПланыВидовРасчета.ДополнительныеНачисления.Премия);
Запрос.УстановитьПараметр("ПериодРегистрации", НачалоМесяца(Дата));

Результаты=Запрос.ВыполнитьПакет();

Выборка = Результаты [1].Выбрать();
Пока Выборка.Следующий() Цикл
Движение=Движения.ОсновныеНачисления.Добавить();
ЗаполнитьЗначенияСвойств(Движение, Выборка);
КонецЦикла;

Выборка=Результаты[2].Выбрать();
Пока Выборка.Следующий() Цикл
Движение=Движения.ДопНачисления.Добавить();
ЗаполнитьЗначенияСвойств(Движение, Выборка);
КонецЦикла;

Движения.Записать();

Расчет.РассчитатьНачисления(Ссылка, ОсновныеНачисления, ДопНачисления);   

Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записать();

Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записать();

ЗафиксироватьТранзакцию();   

КонецПроцедуры



то что при расчете нет записей в регистре обеспечивается только строками
Движения.ОсновныеНачисления.Очистить();
Движения.ОсновныеНачисления.Записать();

Движения.ДопНачисления.Очистить();
Движения.ДопНачисления.Записать();


у меня тоже при расчете в регистр ничего не попадает, только при проведении.

Мне непонятно зачем здесь этот гиганский запрос(который уж точно не успеешь сделать) который по сути делает то же самое что уже есть и вообще не нужен, достаточно вызвать    ОбработкаПроведения();
« Последнее редактирование: Март 27, 2017, 11:49:44 am от kvt500 »

xXeNoNx

  • Пользователь
  • **
  • Сообщений: 67
Re: Билет 1. Спец по платформе V8
« Ответ #431 : Март 27, 2017, 03:41:59 pm »
А как у Вас обрабатывается вот этот момент: "В одном документе могут быть данные за разные расчетные периоды"?

kvt500

  • Проверенный
  • ***
  • Сообщений: 159
  • ФИО: kvt500
Re: Билет 1. Спец по платформе V8
« Ответ #432 : Март 28, 2017, 06:32:16 am »
все норм можно начисления за текущий, и за прошлый, и позапрошлый месяцы делать

POW

  • Новичок
  • *
  • Сообщений: 8
  • ФИО: Каргаполов Владимир
Re: Билет 1. Спец по платформе V8
« Ответ #433 : Март 28, 2017, 06:27:09 pm »
А как у Вас обрабатывается вот этот момент: "В одном документе могут быть данные за разные расчетные периоды"?
все норм можно начисления за текущий, и за прошлый, и позапрошлый месяцы делать
Судя по сообщению от уже сдавшего ITshnik, то нужно в табличную часть Начисления добавить Реквизит "ПериодРегистрации".
http://forum.chistov.pro/index.php?topic=993.msg50586#msg50586

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 1. Спец по платформе V8
« Ответ #434 : Март 28, 2017, 09:00:01 pm »
Судя по сообщению от уже сдавшего ITshnik, то нужно в табличную часть Начисления добавить Реквизит "ПериодРегистрации".
Так делать точно не "нужно". Но, поскольку экзаменаторы принимают, можно.