Имя: Пароль:
1C
1С v8
Правка движений в расширении. Мистика, которую вы знаете (да?)
,
0 Coneho
 
21.08.20
11:47
Спасители!

Просветите новичка борьбы с типовой не снятой с поддержки!


Хочу добавить к бух.движениям дока забалансовые проводки -
(для начального теста - пытаюсь скинуть к 1 рублю суммы штатных проводок).

Сделал расширение к не снятой с поддержки свежайшей БП 3 (на последней 17-й платформе при том).
В этом расширении добавил подписку на ОбработкаПроведения дока (с 17-й возможны подписки в расширениях).
В этой подписке вот что творю (тест):

Проводки = Источник.Движения.Хозрасчетный;
ТЗ = Проводки.Выгрузить();
Для каждого Стр Из ТЗ Цикл
    Стр.Сумма = 1; // для простого теста
КонецЦикла;
Проводки.Загрузить(ТЗ);

Ну и болт((
При этом, если в доке поставить галку "РучнаяКорректировка", то все ОК - подписка движения правит.

Та же беда, если в расширении пытаться в модулях дока и формы соответственно править движения в ОбработкаПроведения (после) и ПослеЗаписиНаСервере (после).

Понимаю, что подписка в расширении только с этой 17-й платформы работает, может, еще не допилили. Но уж в модуле дока-то...

Наверняка истина где-то рядом, и вы ее знаете...


********
Просветите, поможите...
Что не дает движения изменить?
********


PS Если обработкой движения править, то, разумеется, все нормально. На  то она и обработка, но хочется самим доком.
1 Momus
 
21.08.20
11:55
В модуле менеджера документа есть функция "ТекстОтраженияВРеглУчете"?
2 Жан Пердежон
 
21.08.20
11:56
проверь "Записывать" у набор записей
3 Fragster
 
гуру
21.08.20
11:57
может быть потому что на момент вызова движения уже записаны?
4 Fragster
 
гуру
21.08.20
11:57
попробуй сделать Проводки.Записывать = Истина
5 Жан Пердежон
 
21.08.20
12:00
и никакой мистики - без расширения было бы тоже самое
6 ribuh
 
21.08.20
12:02
Вот рабочая процедура - всё просто:

&После("ОбработкаПроведения")
Процедура еаю_ОбработкаПроведения(Отказ, РежимПроведения)
    //Пересортица товаров 00SV-000010 от 23.03.2020 12:46:14
    Если Лев("" + Основание, 19) = "Пересортица товаров" Тогда //Будем обрабатывать, исходим из того, что дата и номер документов списания и оприходования совпадают
        ТоварыОТ = ОбработатьОприходование();
        Если ТоварыОТ.Количество() = 0 Тогда //Не найдено оприходование, пропускаем документ, ибо неизвестен товар(ы) для оприходования
            Возврат
        КонецЕсли;
        Проводки = Движения.Хозрасчетный;
        нпп = 0;
        Для Каждого Проводка Из Проводки Цикл
            НомерСтрокиТовараСТ = Товары.НайтиСтроки(Новый Структура("Номенклатура", Проводка.СубконтоКт.Номенклатура))[0].НомерСтроки;
            ТоварОТ = ТоварыОТ[НомерСтрокиТовараСТ - 1].Номенклатура;
            Проводка.СчетДт = Проводка.СчетКт;
            Проводка.КоличествоДт = Проводка.КоличествоКт;
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Номенклатура", ТоварОТ);
            Если ЗначениеЗаполнено(Проводка.СубконтоКт.Склады) Тогда
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Склады", Склад);
            КонецЕсли;
            Если ЗначениеЗаполнено(Проводка.СубконтоКт.Партии) Тогда
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Партии", Проводка.СубконтоКт.Партия);
            КонецЕсли;
            нпп = нпп + 1;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
7 Coneho
 
21.08.20
12:04
(5) Жан, благодарю! О, благодарю!
Я - тормоз(((
8 Coneho
 
21.08.20
12:04
Други, спасибо!
Я записывать не ставил...
9 vde69
 
21.08.20
12:24
ну вроде как-бы расширение должно работать с тем-же режимом совместимости, что и основа ?

БП-3 имеет более низкий режим совместимости, значит подписка и не будет работать...
10 Coneho
 
21.08.20
12:46
(9) Не, все заработало. Я "записывать" прошляпил.
Подписка - классная вещь.
По расширениям есть пока еще опаска, что данные улетят. Но как иначе поступить, не снимая конфу с поддержки...
11 vde69
 
21.08.20
12:51