|   |   | 
| 
 | Программное изменение движений документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        Pahom 12.09.25✎ 08:11 | 
        Стоит задача в отражении зарплаты в бухучете (Бухгалтерия 3.0) выделить начисления отпускных на отдельные статьи затрат . Типового способа нет, делать на каждое подразделение способ отражения не вариант, поэтому решил программно менять движения. После обработки проведения вставил процедуру следующего содержания:
 НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество() = 0 Тогда Возврат; КонецЕсли; Счет20 = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; Счет23 = ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводства; Счет25 = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы; Счет26 = ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы; Счет4401 = ПланыСчетов.Хозрасчетный.ИздержкиОбращения; Счет4402 = ПланыСчетов.Хозрасчетный.КоммерческиеРасходы; Для каждого Запись из НаборЗаписей Цикл Если Запись.Содержание = "Начислен ежегодный отпуск" Тогда Если Запись.СчетДт = Счет20 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000000022"); ИначеЕсли Запись.СчетДт = Счет23 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000001053"); ИначеЕсли Запись.СчетДт = Счет25 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000001064"); ИначеЕсли Запись.СчетДт = Счет26 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000001000"); ИначеЕсли Запись.СчетДт = Счет4401 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000001015"); ИначеЕсли Запись.СчетДт = Счет4402 Тогда Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоКоду("000001015"); КонецЕсли; КонецЕсли; КонецЦикла; НаборЗаписей.ОбменДанными.Загрузка = Истина; НаборЗаписей.Записать(); В отладке вижу, что статьи затрат меняются, но после записи всё остаётся по старому. В чём может быть проблема? | |||
| 1
    
        Dmitry1c 12.09.25✎ 08:24 | 
        Типовой способ есть.
 В ЗУП-е надо эти начисления по отдельным способам отражения зарплаты выделять. | |||
| 2
    
        Pahom 12.09.25✎ 08:59 | 
        (1) Способ отражения отпуска в ЗУП-е такой же как у основного заработка сотрудника. Можно конечно насоздавать 20 начислений отпусков и каждому указать способ отражения, и потом их руками менять каждому сотруднику, но хотелось бы без садо-мазо.     | |||
| 3
    
        maxar 12.09.25✎ 09:04 | 
        (0) в обработке проведения (после) редактируй Движения.Хозрасчетный     | |||
| 4
    
        Pahom 12.09.25✎ 09:13 | 
        (3) Может, это не очевидно, но именно так и пытаюсь делать.     | |||
| 5
    
        maxar 12.09.25✎ 09:13 | 
        (4) а где тут Движения.Хозрасчетный если 
 "РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();" | |||
| 6
    
        Ненавижу 1С гуру 12.09.25✎ 09:14 | 
        (4) не так ты делаешь. Ты набор записей создал и записываешь. Этот набор записей к коллекции движений объекта документа не имеет никакого отношения     | |||
| 7
    
        Pahom 12.09.25✎ 09:37 | 
        (5) А это не одно и то же?     | |||
| 8
    
        Ненавижу 1С гуру 12.09.25✎ 09:39 | 
        (7) вообще-то нет     | |||
| 9
    
        Прохожий 12.09.25✎ 09:46 | 
        (8) И это был не правильный ответ...     | |||
| 10
    
        Прохожий 12.09.25✎ 09:47 | 
        В обработке проведения Движения.Хозрасчетный, а для сторонней обработки -(0)     | |||
| 11
    
        Прохожий 12.09.25✎ 09:50 | 
        (3) насколько я понимаю, в типовых Движения формируются как структура и потом Движения.Загрузить(). А структура формируется где-то в общих модулях. Там и надо подготавливать. А не Движения документа парсить. Если во время проведения хотите получать другое.     | |||
| 12
    
        Прохожий 12.09.25✎ 09:52 | 
        Все ушли в другую ветку...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |