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

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

freez1301

  • Пользователь
  • **
  • Сообщений: 68
Re: Билет 1. Спец по платформе V8
« Ответ #150 : Июнь 09, 2016, 11:18:20 am »
спасибо. все взлетело ))
да эж, каркас билета сделал за полдня а на допиливание ушло еще 2 дня, правда отвлекался, но все же. Надеюсь, что к 6 билету будет попроще уже )

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

  • Проверенный
  • ***
  • Сообщений: 219
Re: Билет 1. Спец по платформе V8
« Ответ #151 : Июнь 21, 2016, 09:08:46 am »
Ну вот и пришло время решать билеты на время. Первый пошел)) 4 часа 20 минут - на все задания, включая внесение тестовых данных, настройка отображения отчетов как в задании - считаю справился неплохо по времени, хотя билет, конечно, не самый трудный. Был бы очень признателен за конструктивную критику моего решения!


SAM

  • Пользователь
  • **
  • Сообщений: 56
  • ФИО: Сергей
Re: Билет 1. Спец по платформе V8
« Ответ #152 : Июнь 21, 2016, 01:45:53 pm »
Ну вот и пришло время решать билеты на время. Первый пошел)) 4 часа 20 минут - на все задания, включая внесение тестовых данных, настройка отображения отчетов как в задании - считаю справился неплохо по времени, хотя билет, конечно, не самый трудный. Был бы очень признателен за конструктивную критику моего решения!

На мой взгляд, в целом все ок. Два момента только бросились в глаза:

1. В проведении расходной накладной строка 19 Движения.Записать(); точно не нужна. Она и не запишет ничего.

2. Зачем из модуля документа "Начисление зарплаты" в общий модуль передавать ссылку, а потом от ссылки читать из базы движения? Лишнее чтение из базы, в модуле документа есть универсальная коллекция Движения, имхо, лучшее эту коллекцию и передать (и из нее же взять ссылку на документ)

И самое главное - не сделали кнопку "Рассчитать" в документе НачислениеЗ/п, советую сделать - я попал на 2 балла из-за этой кнопки.
 

freez1301

  • Пользователь
  • **
  • Сообщений: 68
Re: Билет 1. Спец по платформе V8
« Ответ #153 : Июнь 21, 2016, 03:59:43 pm »
2SAM
видел пишут про эту кнопку на форуме, но ни в одном задании не встречал еще такого требования, да и в решениях ни у кого тоже не видел. В моем понимании она должна показать в таб. части результат? Грубо говоря провести документ?

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

  • Проверенный
  • ***
  • Сообщений: 219
Re: Билет 1. Спец по платформе V8
« Ответ #154 : Июнь 21, 2016, 06:01:56 pm »
Ну вот и пришло время решать билеты на время. Первый пошел)) 4 часа 20 минут - на все задания, включая внесение тестовых данных, настройка отображения отчетов как в задании - считаю справился неплохо по времени, хотя билет, конечно, не самый трудный. Был бы очень признателен за конструктивную критику моего решения!

На мой взгляд, в целом все ок. Два момента только бросились в глаза:

1. В проведении расходной накладной строка 19 Движения.Записать(); точно не нужна. Она и не запишет ничего.

2. Зачем из модуля документа "Начисление зарплаты" в общий модуль передавать ссылку, а потом от ссылки читать из базы движения? Лишнее чтение из базы, в модуле документа есть универсальная коллекция Движения, имхо, лучшее эту коллекцию и передать (и из нее же взять ссылку на документ)

И самое главное - не сделали кнопку "Рассчитать" в документе НачислениеЗ/п, советую сделать - я попал на 2 балла из-за этой кнопки.
SAM, во-первых, спасибо что и после сдачи появляетесь на этом форуме и помогаете тем, кто еще не получил сертификат.
По поводу замечаний, действительно в коде должен был указываться конкретный набор записей Движения.ТоварыНаСкладах.Записать(); Передача ссылки а не коллекции движений в общий модуль - в принципе так видел во многих решениях + Чистов именно так реализовывает в своих курсах, думаю это не принципиальный вопрос, буду уже делать так как набил руку.
А вот по поводу расчета интересное замечание, уточните, у Вас было прямо в условии задания текст про кнопку расчета  в форме документа? Или теперь это общее требование ко всем расчетным задачам?
« Последнее редактирование: Июнь 21, 2016, 06:03:40 pm от pozitiFFF »

SAM

  • Пользователь
  • **
  • Сообщений: 56
  • ФИО: Сергей
Re: Билет 1. Спец по платформе V8
« Ответ #155 : Июнь 21, 2016, 07:15:49 pm »
Движения.ТоварыНаСкладах.Записать();так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.

По поводу кнопки "Рассчитать": у меня был на аттестации именно 1-й билет и в расчетной задаче был примерно такой текст (насколько вспомню):
Цитировать
В документе Начисление зарплаты на форме реализовать кнопку "Рассчитать" для предварительного заполнения результатов расчета в форме...
. Должен ли проводиться документ по этой кнопке, или нужно как то провести вычисления и заполнить столбец "Результат" на форме - тут я не могу подсказать, если бы знал - сделал бы на аттестации  ;D

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

  • Проверенный
  • ***
  • Сообщений: 219
Re: Билет 1. Спец по платформе V8
« Ответ #156 : Июнь 22, 2016, 06:43:37 am »
Движения.ТоварыНаСкладах.Записать();так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.
Осмелюсь с Вами поспорить.
Перед записью пустого набора устанавливается свойство БлокироваДляИзмерения в Истина.
Движения.ОстаткиТоваров.БлокироватьДляИзменения=Истина;
Движения.ОстаткиТоваров.Очистить();

Здесь на одной из веток шло бурное обсуждение установки свойства БлокироватьДляИзменения в Истина и дальнейшая запись пустого набора. Это делается для того чтобы заблокировать регистр по тем позициям, что были в документе ранее (так как транзация может завершиться неуспешно и движения в регистре остануться старые, мы должны обеспечить блокировку и этих позиций)

SAM

  • Пользователь
  • **
  • Сообщений: 56
  • ФИО: Сергей
Re: Билет 1. Спец по платформе V8
« Ответ #157 : Июнь 22, 2016, 09:32:15 am »
Движения.ТоварыНаСкладах.Записать();так тем более не нужно делать - это противоречит новой методике проведения, которую вы применяете. В данном случае надо сформировать движения, записать их и потом проверить на отрицательные остатки. Предварительно записывать пустые (очищенные) движения не нужно - это лишняя запись в базу.
Осмелюсь с Вами поспорить.
Перед записью пустого набора устанавливается свойство БлокироваДляИзмерения в Истина.
Движения.ОстаткиТоваров.БлокироватьДляИзменения=Истина;
Движения.ОстаткиТоваров.Очистить();

Здесь на одной из веток шло бурное обсуждение установки свойства БлокироватьДляИзменения в Истина и дальнейшая запись пустого набора. Это делается для того чтобы заблокировать регистр по тем позициям, что были в документе ранее (так как транзация может завершиться неуспешно и движения в регистре остануться старые, мы должны обеспечить блокировку и этих позиций)

Я руководствовался статьей Павла Чистова http://1c.chistov.pro/2013/07/blog-post_25.html явно в статье нет ответа на Ваш вопрос, но есть ниже в комментариях. 
Вкратце: очищать движения, блокировать для изменения и записывать нужно в начале проведения по старой методике. По новой методике - формируете движения, устанавливаете БлокироватьДляИзменения=Истина и пишите. Движения, которые возможно были в базе до записи набора, тоже заблокируются.

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

  • Проверенный
  • ***
  • Сообщений: 219
Re: Билет 1. Спец по платформе V8
« Ответ #158 : Июнь 23, 2016, 10:03:10 am »
Я руководствовался статьей Павла Чистова http://1c.chistov.pro/2013/07/blog-post_25.html явно в статье нет ответа на Ваш вопрос, но есть ниже в комментариях. 
Вкратце: очищать движения, блокировать для изменения и записывать нужно в начале проведения по старой методике. По новой методике - формируете движения, устанавливаете БлокироватьДляИзменения=Истина и пишите. Движения, которые возможно были в базе до записи набора, тоже заблокируются.
Не нашел подтверждение своих слов. Так что судя по всему Вы правы - для новой методики проведения, не следуют записывать пустой набор записей, блокировка по удаленным позициям из документа будет осуществляться в дальнейшем при записи набора записей. Спасибо!

roxy_

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 1. Спец по платформе V8
« Ответ #159 : Август 05, 2016, 02:09:15 pm »
Добрый день !
делала по материалам чистова контроль остатков , вроде бы все нормально , ошибок нет
но , при проведении документа нет предупреждений о том , что товара нет
хотя пытаюсь продать несуществующий товар
мб кто-то сталкивался с такой проблемой ?
прикладываю файл dt

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 1. Спец по платформе V8
« Ответ #160 : Август 05, 2016, 02:33:20 pm »
Добрый день, roxy_ !
Посмотрел твое решение.
Ошибка была в том, что ты пишешь в регистр с видом движения "Приход" - а надо "Расход".

misev

  • Новичок
  • *
  • Сообщений: 9
Re: Билет 1. Спец по платформе V8
« Ответ #161 : Август 05, 2016, 03:24:40 pm »
Ребят, проверьте, если кому не сложно, вроде бы все правильно работает, но вот эти вечные ньюансы все портят. (Нет кнопки рассчитать) Делала ее, когда решала задачи из билета по отдельности, с легкостью сделала, поэтому второй раз делать было просто влом)

roxy_

  • Новичок
  • *
  • Сообщений: 3
Re: Билет 1. Спец по платформе V8
« Ответ #162 : Август 05, 2016, 08:49:26 pm »
Спасибо , freemaestro , что откликнулся
я поменяла , как ты советуешь
но , к сожалению у меня теперь ни один документ не проводится , в сообщениях ошибки числа намного больше , чем в приходной накладной   :(

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: Билет 1. Спец по платформе V8
« Ответ #163 : Август 05, 2016, 10:58:23 pm »
Спасибо , freemaestro , что откликнулся
я поменяла , как ты советуешь
но , к сожалению у меня теперь ни один документ не проводится , в сообщениях ошибки числа намного больше , чем в приходной накладной   :(
Странно, прежде, чем добраться до сообщений, пришлось исправлять ошибки в коде.
Цитировать
Сообщение.Текст = "Не хватает товара" + Выборка.Материал.Представление +" не хватает "+ (-Выборка.КоличествоОстаток);
Что это такое у вас - Выборка.Материал.Представление? Как у вас вообще что-то проводится с таким кодом?  :-\
А когда ошибку поправил, и исправил в расходе вид движения на Расход, вроде бы недостача указывается верно, за исключением - расходная накладная 1 по времени раньше приходной, а недостаток выдает с учетом прихода. Подозреваю, что дело в оперативном проведении - поскольку расход сегодняшней датой, то программа пытается провести документ текущим временем.
Но плохо не это  :D , а то, что вы обрабатываете оперативное проведение, а на экзамене этого делать НЕ НАДО.
Недавно в "Результатах сдачи ..." писали, что, по крайней мере, за это делают замечание, т.к. по условиям экзамена остатки надо получать на момент проведения документа. Некоторые, кроме того, вообще запрещают оперативное проведение всех документов.  :)
« Последнее редактирование: Август 05, 2016, 11:01:40 pm от alex1248 »

freemaestro

  • Пользователь
  • **
  • Сообщений: 79
  • ФИО: Сергей А.
Re: Билет 1. Спец по платформе V8
« Ответ #164 : Август 06, 2016, 10:18:40 am »
Добрый день, alex1248 !

Но плохо не это  :D , а то, что вы обрабатываете оперативное проведение, а на экзамене этого делать НЕ НАДО.
Недавно в "Результатах сдачи ..." писали, что, по крайней мере, за это делают замечание, т.к. по условиям экзамена остатки надо получать на момент проведения документа. Некоторые, кроме того, вообще запрещают оперативное проведение всех документов.  :)

Вот я хотел уточнить насчет оперативного проведения - это где-то прописано в официальных правилах, что оперативное проведение вообще не нужно обрабатывать ? Я к примеру, не увидел этого. И в курсах 1С по подготовке к экзамену этого нет, там обрабатывают преподаватели оперативное проведение.

На самом деле, я за то, чтобы его не обрабатывать, а вообще запретить - это упростило бы жизнь.