Вчера здал экзамен. Есть вопросы, можете спросить. Принимал Белоусов. Было неудобно, торопился всё время. Из-за опечаток приходилось пользоваться отладчиком и терять время.
Попался билет номер 3. Текст сходится с текстом, выложенным здесь. Сняли баллы за решение задач по управляемым формам, не успел всё доделать. По управляемым формам три задачки, я сделал только одну, вторую не до конца, третью не успел. Не хватило чуть-чуть, слишком много времени потратил на отладку ошибок, ввод данных, первоначальный разгон.
.Снял баллы за решение оперативной задачи. Смотрел код проведения всех документов, запросы, блокировки, запись, проблема копеек.
По решению оперативной части билета:
Во-первых, при сортировки по партиям указал дату документа, а нужно было использовать момент времени.
Во-вторых, сам метод решения был неправильным. Для экзамена пойдет, но для жизни - нет. Многое сделано неоптимально. Сомневался я над решением этой задачи, оказалось не зря.
Я делал способом описанным здесь на формуме. Для смены учетной политики я сделал месячный регистр сведений. Оказалось не совсем правильно, поскольку учетная политика меняется раз в месяц, но кто сказал, что она должна меняться именно первого числа в начале дня . Упрощение - раз. Далее - не факт, что именно в эту секунду не будет сделан приход или расход. В общем выход один - сделать так, чтобы учетная политика могла устанавливаться на определенный момент времени и меняться хоть сто раз в день. Условие, что учетная политика может меняться раз месяц - это ограничение пользователей. Дополнительных проверок не нужно делать. (Тоже самое касается и бухгалтерского учета, переплат и авансов нет, и проверять это не нужно в программе, это ограничение в самом вводе, контролировать не нужно.)
Краткое описание как я сделал - один регистр ОстаткиНоменклатуры - два измерения - Номенклатура, Партия - два ресурса - Количество, Сумма.
Я сделал так - приход в зависимости от метода списания - приход делается либо по пустой партии, либо в партию идет документ прихода. При списании я сделал два алгоритма - либо по среденей, либо по партиям. Получение метода, далее простое условие, если по средней, то один алгоритм и выборка, иначе - другой. Преподаватель сказал, что я сделал лишнюю работу, потерял время, так как можно было сделать одно партионное списание, но баллы не снял.
Нужно было делать так - списание чисто по партиям. Регистр учетная политика - подчинен регистратору документу СменаУчетной политики и определяется на каждый момент времени (а не даты). Далее основная идея - нет никаких пустых партий в регистре. При переходе на учетную политику по средней документ СменаУчетнойПолитики должен закрывать все партии, а делать приход на себя. То есть Партия - это документ оприходования или же документ смена учетной политики. Вот так. При проведении приходной накладной, она смотрит установленное значение метода списания, если по партиям- пишет в партию себя(ссылку), если же по средней - то из регистра получает, какой документ поставил эту учетную политику, и ставить его. Проведение - по партиям. Всё оказалось просто и легко, работает для любого момента времени, даже если документы были в одной секунде. Можно менять учетную политику много раз в любой интервал времени.
Всё остальное - более менее нормально и стандартно.
Всё уже по сто раз решено. Бухгалтерский учет - счет покупатели - Контрагенты, Договоры. Сумма - баланс, ВалСумма - небаланс, валютный учет. Валюта не является субконто, так как расчеты по одному договору только в этой валюте. Главное в курсах не запутаться. Приход денег без контроля авансов. Корректировка задолженности с проверкой, чтобы не писать пустые записи, если курс не изменился.
Расчетная задача - период регистрации в таблице. Один регистр с периодом действия и базой по периоду действия, виды начиления - командировки и оклад. График пятидневка, отдельный реквизит для хранения. Ресурсы - результат и отработано часов. Командировка вытесняет оклад. База для расчет командировки - оклад.
Есть одна сложность - получить в запросе для списка сотрудников на разные даты периода регистрации - оклад на первое число. Пришлось обращаться к записям регистра ОкладыСотрудников, искать сначала нужные мне периоды (меньше или равно началу менсяца периода регистрации, дальше брать максимум). Потом уже когда период известен, то по сотруднику, подразделению и периоду в регистре находить нужный мне оклад. Далее стандартно - при расчете, сделать запись результата оклада до расчета командировки. Так же не забыть про сторно записи.
Отчеты смотрелись только по внешнему виду, сами запросы не смотрелись. Шапки и заголовки не нужны. Однако важно наличие положения колонок - вертикально, горизонтально. Положение и заполнение группировок - отдельно и только в итогах.
Красоту делать не нужно. Внешний вид документов по умолнчанию. Пересчета табличных частей нет (сумма, цена, количество). Последовательностей нет. В документе операция сделал только установку дату для всех проводок, при отмене проведения делал отмену активности записей. Претензий не было.