"страшно, страшно, очень страшно, мы не знаем что это такое, если бы мы знали что это такое, мы не знаем что это такое" 13 лет в 1С, 8 из них разрабом, а это высказывание до сих пор актуально по отношению к платформе 1С
@ИринаСлабоспицкая-э4д4 ай бұрын
После того, как Илья удалил Движение.Результат из Рассчитать Начисления, а оставил только Строка.Результат при первом нажатии кнопки "Рассчитать" посчитается только Оклад, а премия не посчитается, потому что в регистре не будет РезультатБаза (Мы ведь не записали Движение.Результат). После второго нажатия запишется результат расчета оклада(База) в Регистр, посчитается Премия, и движения очистятся. Лучше тогда не удалять Движение.Результат .
@lusine_mkrtumian3 жыл бұрын
Спасибо большое за урок, давно собиралась посмотреть, что это за метод - РеквизитФормыВЗначение, все руки не доходили. Теперь все предельно ясно))
@TheRussianEvil9 ай бұрын
Шёл январь 2024. Стоимость очного экзамена в Москве - 3400.
@ВикторХабаров-х9м5 ай бұрын
Привет всем)
@kb-37552 жыл бұрын
При таком подходе, если зайти в проведенный документ и нажать кнопку рассчитать (например, чтобы посмотреть суммы расчета), то текущие движения документа очистятся. Получится, что документ проведен, а движений нет.
@andry1619DM Жыл бұрын
Тоже это заметил, чуть чуть переделал процедуру формы рассчитать на сервере. &НаСервере Процедура РассчитатьНаСервере() Если Объект.Ссылка.Пустая() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Документ должен быть записсан!"; Сообщение.Сообщить(); Возврат; КонецЕсли; Если Объект.Проведен = Истина Тогда Если Не Объект.ОсновныеНачисления.Количество() = 0 Тогда ДвиженияОснНач = РегистрыРасчета.ОсновныеНачисления.ВыбратьПоРегистратору(Объект.Ссылка); Объект.ОсновныеНачисления.Очистить(); Пока ДвиженияОснНач.Следующий() Цикл Строка = Объект.ОсновныеНачисления.Добавить(); Строка.Сотрудник = ДвиженияОснНач.Сотрудник; Строка.ГрафикРаботы = ДвиженияОснНач.ГрафикРаботы; Строка.ВидРасчета = ДвиженияОснНач.ВидРасчета; Строка.ДатаНачала = ДвиженияОснНач.ПериодДействияНачало; Строка.ДатаОкончания = ДвиженияОснНач.ПериодДействияКонец; Строка.Результат = ДвиженияОснНач.Результат; Строка.Оклад = ДвиженияОснНач.Оклад; Строка.ОтработаноДней = ДвиженияОснНач.ОтработаноДней; Строка.РабочихДней = ДвиженияОснНач.РабочихДней; КонецЦикла; КонецЕсли; Если Не Объект.ДополнительныеНачисления.Количество() = 0 Тогда ДвиженияДопНач = РегистрыРасчета.ДополнительныеНачисления.ВыбратьПоРегистратору(Объект.Ссылка); Объект.ДополнительныеНачисления.Очистить(); Пока ДвиженияДопНач.Следующий() Цикл Строка = Объект.ДополнительныеНачисления.Добавить(); Строка.Сотрудник = ДвиженияДопНач.Сотрудник; Строка.ВидРасчета = ДвиженияДопНач.ВидРасчета; Строка.Результат = ДвиженияДопНач.Результат; Строка.БазаНачислений = ДвиженияДопНач.БазаНачислений; Строка.ПроцентПремии = ДвиженияДопНач.ПроцентПремии; Строка.Стаж = ДвиженияДопНач.Стаж; КонецЦикла; КонецЕсли; Возврат; КонецЕсли; ДокОбъект = РеквизитФормыВЗначение("Объект"); ДокОбъект.ЗаписатьДанныеВРегистры(); ДокОбъект.РассчитатьНачисления(); ЗначениеВРеквизитФормы(ДокОбъект,"Объект"); КонецПроцедуры
@Ekaterina-ez2kg4 ай бұрын
Так сильно переживаю за Бельдыева. Может отпраить его на курсы повышения квалификации?
@Gild_71 Жыл бұрын
150 руб кешбеком вернул))))
@gerodoth3 жыл бұрын
было сложно но я понял. получается в новом документе если не нажать рассчитать то ничего и не посчитается, запишется то что есть. а если рассчитать то из строк заполнением. финт не очевидный.
@cilantro_bumblebee3 жыл бұрын
Удалятся ли движения документа, если его распровести? Помоему нет...Я пропустил что-то или этот момент не освещался?
@IlyaLeontyev3 жыл бұрын
Почему не удалятся? Должны удалиться. Такое поведение нам обеспечивает свойство документа "Удалять автоматически при отмене проведения", которое устанавливается для документов по умолчанию.
@dnk35693 жыл бұрын
Илья, привет. в 17:43 ты записал "Отказ =Истина" в проц. РассчитатьНаСервере(). А разве в нее передается этот параметр, не будет она лишней?
@IlyaLeontyev3 жыл бұрын
Да, смысла в этом нет ) Это я рефлекторно уже делаю )
@АлександрОрлов-п9ч6 ай бұрын
Получается, если пользователь нажмёт "рассчитать", а потом передумает и закроет документ без проведения, то все старые движения пропадут без предупреждения. Опасно)
@gerodoth3 жыл бұрын
РеквизитФормыВЗначение("Объект") или Объект.Ссылка.ПолучитьОбъект() Есть ли разница?
@IlyaLeontyev3 жыл бұрын
Да, очень большая. РеквизитФормыВЗначение("Объект") позволяет получать объект с актуальными данными открытой формы. А когда ты по ссылке объект получаешь, ты берешь сохраненную копию объекта (данные которого могут отличаться от данных открытой формы).
@PupaVaskin3 жыл бұрын
Транзакция здесь просто необходима, ведь мы в разных функциях что-то пишем в базу. В случае каких-то ошибок мы можем получить неочищенные движения и неконсистентность данных.