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

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

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #705 : Январь 24, 2018, 09:26:01 pm »
Цитировать
Что ж, я посмотрел, хорошее решение)
Спасибо за замечания!
Цитировать
Не понятно, зачем в начале метода рассчитать очистка движений:
Да, пожалуй лишнее это
Цитировать
2. Логично убрать Подразделение из измерений РС СведенияОСотрудниках (перенести в реквизиты), т.к. по условиям задачи Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.
Логично. Думаешь к такому могут прикопаться?
Цитировать
3. В документе НачислениеЗарплаты в методе Рассчитать() в запросе ты не упорядочиваешь по номеру строки, в результате порядок строк в наборе и в ТЧ может отличаться, а ты позиционируешься потом по номеру строки набора на строке ТЧ (в общем модуле Расчет).   
Так там же отбор по номеру строки идет. В выборке будут только нужные строки.  Вопрос оптимальности?
Цитировать
4. Расчет.Расчитать() - не желательно здесь читать набор записей. Желательно передать его из документа. Потому что сейчас так: ты в документе получил набор, записал. В общем модуле ты считал набор, записал. Потом в документе ты чистишь набор и записываешь. Но чистишь и записываешь не ту версию, которая была записана в общем модуле, а ту, которая была записана в документе. Т.е. работаешь с неактуальным набором. Я точно не уверен, но вроде могут быть блокировки из-за попытки записать неактуальный набор.
Суть понял. Да, набор в документе уже не актуальный. Надо будет подумать...
Цитировать
4. БП: Удобнее в форме бизнес-процесса сделать еще кнопку для обновления карты.
Удобно, конечно. Тут вопрос на что потратишь больше времени. В одном случае на тестирование, в другом - на реализацию кнопки. Я решил не делать кнопку.
Цитировать
5. В приходной, насколько я понял, есть возможность оприходовать услуги
Услуги учитываю хитро. По условию задачи услуг в поступлении быть не должно. Я добавил флаг "ЭтоУслуга" в ТЧ расходной. Для услуг надо включать этот флаг. Это не красиво, конечно. Наши сдавали в конце прошлого года - за такую реализацию замечаний не делали.

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #706 : Январь 24, 2018, 10:51:57 pm »
Прорешала 1 билет! Застряла с БП( Не забывайте настраивать связку измерений РС Регистр адрессации и реквизитов Задачи Исполнителя!
Прикладываю свою базу, прошу критики)

1. СПР. в ПВР для премии не указан базовый вид расчета и ведущий. Ведущий, может не обязательно указывать, т.к. перерасчет реализовывать не требуется. Я указываю. В РР подразделение можно не добавлять, ИМХО. В документе начисления ЗП есть смысл проверять документ на запись. Документа может не существовать на момент расчета либо данные в нем могут быть не актуальными.
По поводу очистки движений вопрос:
Движения.ОсновныеНачисления.Очистить();
Для чего очищаете? :)
Почитайте замечания к моему билету. У Вас похожее решение.
В общем модуле в процедуре расчета нет смысла записывать второй набор записей - он все равно потом очищается.
Серьезный подход к реализации отчета...

2. ОУ.
А для чего пишите в приходной накладной код:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение или ВнешнееСоединение Тогда?
В расходной  строка:
Движения.ОстаткиНоменклатуры.Очистить();лишняя.
При списании партий конструкцию:
Если Отказ Тогда
Продолжить;
КонецЕсли;
стоит вынести за "КонецЕсли" т.к. если хотя бы одного товара не хватает - документ не должен делать проводок.
Отчет: склад и номенклатура в одной колонке выводится.
3. БУ.
Для блокировки данные вместо строки:
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура");правильнее писать:
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");4. БП
Интересно, на экзамене прокатывает такой лаконичный вариант заполнения регистра адресации?
Не обязательно делать 2 формы. Можно сделать одну с отбором по исполнителю. Только не делать ее основной. Эту форму выводим на начальной странице. У задачи при открытии будет формироваться форма без отбора по исполнителю автоматически.


Julia2690

  • Пользователь
  • **
  • Сообщений: 29
  • ФИО: Юлия
Re: Билет 1. Спец по платформе V8
« Ответ #707 : Январь 25, 2018, 05:38:52 am »
Цитировать
1. СПР. в ПВР для премии не указан базовый вид расчета и ведущий. Ведущий, может не обязательно указывать, т.к. перерасчет реализовывать не требуется. Я указываю. В РР подразделение можно не добавлять, ИМХО. В документе начисления ЗП есть смысл проверять документ на запись. Документа может не существовать на момент расчета либо данные в нем могут быть не актуальными.
По поводу очистки движений вопрос:
Движения.ОсновныеНачисления.Очистить();
Для чего очищаете? :)
Почитайте замечания к моему билету. У Вас похожее решение.
В общем модуле в процедуре расчета нет смысла записывать второй набор записей - он все равно потом очищается.
Серьезный подход к реализации отчета...

2. ОУ.
А для чего пишите в приходной накладной код:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение или ВнешнееСоединение Тогда?
В расходной  строка:
Движения.ОстаткиНоменклатуры.Очистить();лишняя.
При списании партий конструкцию:
Если Отказ Тогда
Продолжить;
КонецЕсли;
стоит вынести за "КонецЕсли" т.к. если хотя бы одного товара не хватает - документ не должен делать проводок.
Отчет: склад и номенклатура в одной колонке выводится.
3. БУ.
Для блокировки данные вместо строки:
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто1", "Номенклатура");правильнее писать:
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");4. БП
Интересно, на экзамене прокатывает такой лаконичный вариант заполнения регистра адресации?
Не обязательно делать 2 формы. Можно сделать одну с отбором по исполнителю. Только не делать ее основной. Эту форму выводим на начальной странице. У задачи при открытии будет формироваться форма без отбора по исполнителю автоматически.
1. СПР - базовый "оклад" у меня указан.. Ведущий не указывала. Да, согласна, стоит проверить документ на запись. И второй набор записей не обязательно записывать, соглашусь, так же как и с тем, что движения нет смысла очищать)
2. Код в ПН забыла удалить, на экзамене писать такого не буду. Не понимаю куда нужно вынести условие
Если Отказ Тогда
Продолжить;
КонецЕсли;
?
Если я не ошибаюсь, вы не стали делать проверку на свободные остатки по партиям? В ветке читала, что вроде желательно это делать)
3. Спасибо за совет!
4. Не знаю, наверное на экзамене нужно заполнить регистр адрессации полностью, как в билете написано. С формой согласна, можно создать только одну по исполнителю.

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #708 : Январь 25, 2018, 08:54:02 am »
Цитировать
1. СПР - базовый "оклад" у меня указан.. Ведущий не указывала.
Еще раз проверил Вашу базу - у меня не установлен такой флаг. Ну да ладно
Цитировать
Не понимаю куда нужно вынести условие
Если Отказ Тогда
Продолжить;
КонецЕсли;
?
Если я не ошибаюсь, вы не стали делать проверку на свободные остатки по партиям? В ветке читала, что вроде желательно это делать)
Да, я не проверял остатки по партиям. Думаю, по условиям данной задачи не должно возникнуть ситуации, когда РН "Остатки" будут остатки а в партиях их не будет. Пришлите, пожалуйста, ссылку на обсуждение этого вопроса.
По поводу проверки на "Отказ" - я имел ввиду, что вместо кода:
Если ТребуетсяСписать>ВыборкаПоИтогам.КоличествоОстаток Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не достаточно товара "+ВыборкаПоИтогам.НоменклатураПредставление+ " в количестве "+Строка(ТребуетсяСписать-ВыборкаПоИтогам.КоличествоОстаток),Отказ);
Если Отказ Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Будет правильнее писать:
Если ТребуетсяСписать>ВыборкаПоИтогам.КоличествоОстаток Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не достаточно товара "+ВыборкаПоИтогам.НоменклатураПредставление+ " в количестве "+Строка(ТребуетсяСписать-ВыборкаПоИтогам.КоличествоОстаток),Отказ);
КонецЕсли;

Если Отказ Тогда
Продолжить;
КонецЕсли;
В этом случае если хотя бы одного товара не хватает - алгоритм не будет уже заполнять движения, а только выводить сообщения о нехватке

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Re: Билет 1. Спец по платформе V8
« Ответ #709 : Январь 25, 2018, 10:45:03 am »

2. Логично убрать Подразделение из измерений РС СведенияОСотрудниках (перенести в реквизиты), т.к. по условиям задачи Каждый сотрудник может работать одновременно только в одном подразделении компании, то есть совместительство не допускается.
Логично. Думаешь к такому могут прикопаться?
Думаю, да.

Цитировать
3. В документе НачислениеЗарплаты в методе Рассчитать() в запросе ты не упорядочиваешь по номеру строки, в результате порядок строк в наборе и в ТЧ может отличаться, а ты позиционируешься потом по номеру строки набора на строке ТЧ (в общем модуле Расчет).   

Так там же отбор по номеру строки идет. В выборке будут только нужные строки.  Вопрос оптимальности?
Попробую уточнить на примере:
В ТЧ документа 2 строки:
1. Иванов
2. Петров
В модуле объекта документа ты не упорядочиваешь по номеру строки, и в регистр записи могут попасть так:
1. Петров
2. Иванов
В общем модуле расчета ЗП ты находишь строку №1 регистра и пишешь в нее Результат. Потом находишь строку № 1 в ТЧ и пишешь в нее результат. Тогда результат Петрова будет записан Иванову.

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Re: Билет 1. Спец по платформе V8
« Ответ #710 : Январь 25, 2018, 11:13:29 am »
Согласен, что есть лишние записи, это я увлекся, заполнил, как в табличке в задаче. Однако записи с заполненным кладовщиком и не заполненным подразделением у меня есть, т.е. ошибки нет. Задачи по исполнителю на начальной странице.
Решение прикрепляю.

В решении, которое я смотрел  подразделения заполнены у всех кроме двух бухгалтеров.
Я разобрался. Твое замечание верное, спасибо. Для кладовщиков адресация групповая, без указания подразделения. В этом случае задачи создаются всем кладовщикам, даже если в регистре адресации подразделение для них заполнено. Это я проверял в режиме Предприятие. Но более правильно в этой задаче, конечно же, сделать записи по кладовщикам без указания подразделения. Исправил.
+ исправил ошибку в документе Операция, которую посадил раньше, когда начал управлять активностью движений в зависимости от пометки удаления.
« Последнее редактирование: Январь 28, 2018, 11:04:19 pm от fimanich »

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #711 : Январь 25, 2018, 10:56:24 pm »
В общем модуле расчета ЗП ты находишь строку №1 регистра и пишешь в нее Результат. Потом находишь строку № 1 в ТЧ и пишешь в нее результат. Тогда результат Петрова будет записан Иванову.
Понял. Спасибо!

stels_blg

  • Новичок
  • *
  • Сообщений: 9
  • ФИО: Иван
Re: Билет 1. Спец по платформе V8
« Ответ #712 : Февраль 01, 2018, 04:37:33 pm »
Цитировать
4. Не знаю, наверное на экзамене нужно заполнить регистр адрессации полностью, как в билете написано. С формой согласна, можно создать только одну по исполнителю.

Забить таблицу полностью - это ошибка. Надо внести только те записи, которые реально используются в БП. То есть минимальный набор. Информация дается избыточная.

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #713 : Февраль 01, 2018, 11:15:12 pm »
Цитировать
Забить таблицу полностью - это ошибка. Надо внести только те записи, которые реально используются в БП. То есть минимальный набор. Информация дается избыточная.
Информация избыточная, но если в БП идет адресация "все кладовщики" и в описании задачи их 4(к примеру) - думаю нужно добавлять все 4 в регистр

VarIzo

  • Новичок
  • *
  • Сообщений: 4
Re: Билет 1. Спец по платформе V8
« Ответ #714 : Февраль 06, 2018, 11:50:41 am »
Вот вариант в совм. 8.3.3
1.  ОУ
В приходной нет необходимости очищать движения. В приходной движения вообще можно конструктором формировать. Проверять номенклатуру на услугу надо в расходной по условию задачи. За запись "Движения.ОстаткиНоменклатуры.Очистить()" могут сделать замечание на экзамене.  Эта строчка нужна для обычных форм.
В расходной при списании себестоимости зачем строка "Движения.Управленческий.БлокироватьДляИзменения = Истина"? При вычислении суммы списываемой себестоимости надо округлять. Без округления вычисленное выражение может иметь точность больше двух знаков после запятой, а в регистре точность=2.
В отчете Склад и Номенклатура в одной колонке идет. Ну это может и не критично.
2. БУ
За документ "Операция" могут снять баллы. Если пометить на удаление - проводки остаются активными.
3. БП
Не верно заполнен регистр адресации. То, что есть лишние записи - думаю не страшно. Только времени жалко на лишнюю работу. А вот то, что не правильно заполнен - снимут балл однозначно. При адресации "Все кладовщики" не надо указывать подразделение. Еще не увидел отображения не выполненных задач с отбором по исполнителю.
Проверять номенклатуру на услугу надо в расходной по условию задачи - можете пжлст привести фразу из которой надо сделать этот вывод.

VarIzo

  • Новичок
  • *
  • Сообщений: 4
Re: Билет 1. Спец по платформе V8
« Ответ #715 : Февраль 06, 2018, 11:56:46 am »
Цитата: fimanich
ОУ
"МоментОстатков = ?(Режим = РежимПроведенияДокумента.Оперативный, Неопределено,
      Новый Граница(МоментВремени(), ВидГраницы.Включая));"
Я находил решения где момент времени берется запросом из документа. Как по вашему будет правильнее?
Цитата: fimanich
ОУ
ВыборкаНоменклатура.Количество > ВыборкаНоменклатура.КоличествоСебестоимость
Надо ли это проверять? Ведь если мы списали товар выше и его хватило даже с учетом склада то по партиям его уж точно должно хватить



« Последнее редактирование: Февраль 06, 2018, 12:02:00 pm от VarIzo »

VarIzo

  • Новичок
  • *
  • Сообщений: 4
Re: Билет 1. Спец по платформе V8
« Ответ #716 : Февраль 06, 2018, 01:17:47 pm »
А можете объяснить зачем в первой задаче добавлять «Признак учета субконто» - Суммовой?

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #717 : Февраль 06, 2018, 08:08:39 pm »
Цитировать
Проверять номенклатуру на услугу надо в расходной по условию задачи - можете пжлст привести фразу из которой надо сделать этот вывод.
В условии задачи фраза: "Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части". Про получение услуг в условии не говорится...

Slava

  • Пользователь
  • **
  • Сообщений: 77
Re: Билет 1. Спец по платформе V8
« Ответ #718 : Февраль 06, 2018, 08:26:48 pm »
Сдал спеца 09.06.17. Хочу поделиться своими решениями билетов. Спасибо всем участникам за обсуждение и выкладываемые решения. Это серьезная помощь в подготовке к экзамену.
Выложи cf-ник пожалуйста а то Платформы 8.3.10 нет сейчас у меня. Заранее Спасибо.
Держи. Кстати обрати внимание на то, что остатки надо проверять и по регистру ОстаткиНоменклатуры и по СебестоимостьНоменклатуры. Аргументы типа:
- остатки проверяются на регистре ОстаткиНоменклатуры, а на СебестоимостьНоменклатуры проверка будет лишней
- если остатки поверил по конкретному складу (ОстаткиНоменклатуры), а уж по всем складам (СебестоимостьНоменклатуры ) товара конечно хватит
и т.д. не взлетают. Белоусов стоял на своем: мол в 1С нет механизма синхронизации данных в двух регистрах, поэтому остатки надо проверять везде (типа это методологически правильно :)))) ).
P.S. Режим совместимости 8.3.6
Похоже проверять остаток нужно и по регистру себестоимости...

VarIzo

  • Новичок
  • *
  • Сообщений: 4
Re: Билет 1. Спец по платформе V8
« Ответ #719 : Февраль 07, 2018, 05:06:36 pm »
Вопрос по БУ:
Срок годности хранится в справочнике. Вроде это правильно - в учебниках не советуют в видах субконто использовать простые типы данных. Но выглядит это так себе, как по моему - представьте насколько "удобно" будет выбирать нужный срок годности если там записи будут по каждому дню в течении 5 ти лет?