Имя: Пароль:
1C
1С v8
Конвертация данных, не отрабатывает код в ПКО
0 kofeinik
 
20.06.14
00:20
// для физ.лиц
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
    Если Объект.Контрагент.Код = "000000002" Тогда
        Для Каждого Стр Из Объект.Товары Цикл
            Стр.СчетДоходов  = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.2");
            Стр.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.2");
        КонецЦикла;    
    КонецЕсли;
КонецЕсли;
1 kofeinik
 
20.06.14
00:21
Блин, код отправился раньше сообщения.
Пишу этот код в обработчике "После загрузки" ПКО реализации, в результате счета остаются без изменения. Что я делаю не так?
2 Naumov
 
20.06.14
03:31
условия не выполняются
3 VladZ
 
20.06.14
05:58
(0) 1. Проверь отработку условий. Либо отладчиком, либо навтыкать "сообщить" в нужных местах.

2. После загрузи говоришь? Добавь Объект.Записать();
4 kofeinik
 
20.06.14
08:51
Условие отрабатывает, счета замещаются, только в результате все равно после загрузки сбрасываются.
VladZ, а что, разве объект.записать() нужно делать? Если я для теста цену в ноль ставлю, оно сохраняется и без записать().
5 Wobland
 
20.06.14
09:02
вообще, установка всяческих счетов учёта бывает прописана в модуле менеджера. надо только процедуру вызвать
6 kofeinik
 
20.06.14
11:49
Проблема в том, что счета учета скорее всего проставляются уже после всех обработчиков загрузки, и мои значения просто затираются значениями из регистра сведений "счета учета", так что, думаю, придется делать отдельной обработкой.
7 Йохохо
 
20.06.14
11:52
(6) ПослеЗагрузкиОбъекта
8 Godofsin
 
20.06.14
11:55
(6) неа. Как ты проверил, что счета замещаются?
9 kofeinik
 
20.06.14
12:15
(8) Поставил сообщить(Стр.СчетРасходов)
10 kofeinik
 
20.06.14
12:17
(7) код в обработчике ПКО_РеализацияТоваровУслуг_ПослеЗагрузкиОбъекта
11 Armin
 
20.06.14
12:21
Не может быть. Смотри процедуры "ПередЗаписью" и "ПослеЗаписи" в модуле объекта, может они подставляют счета принудительно когда ты пытаешься записать объект?
12 Йохохо
 
20.06.14
12:22
может призаписи перезаполняется из реквизитов объекта, а не из тч?
или хардкорно
ОбъектМодифицирован = Ложь;
Объект.Записать();
13 kofeinik
 
20.06.14
12:28
(12) - не помогло
(11) - это типовая БП, там везде в начале процедур стоят блоки
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
Программист всегда исправляет последнюю ошибку.