Имя: Пароль:
1C
1С v8
Как записать изменения в записи справочника?
0 Kaukass
 
06.03.15
22:32
Тупо не пойму как сохранить изменения:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ДоговорыКонтрагентов.Код КАК Код
                   |ИЗ
                   |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                   |ГДЕ
                   |    ДоговорыКонтрагентов.Организация <> &НужнаяОрганизация"       ;
                  
    Запрос.УстановитьПараметр("НужнаяОрганизация", Справочники.Организации.НайтиПоНаименованию(    "ИП ****** Е.В."));
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() ЦИКЛ
         Справочники.ДоговорыКонтрагентов.НайтиПоКоду(Результат.Код).ПолучитьОбъект().Организация = Справочники.Организации.НайтиПоНаименованию("ИП *** Е.В.");
            
//----Это не работает --->>>>>>>          Справочники.ДоговорыКонтрагентов.записать();
    
    КонецЦикла;
1 Лефмихалыч
 
06.03.15
22:41
ИП___ЕВ = Справочники.Организации.НайтиПоНаименованию("ИП *** Е.В.");
   Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ДоговорыКонтрагентов.Ссылка
                   |ИЗ
                   |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                   |ГДЕ
                   |    ДоговорыКонтрагентов.Организация <> &НужнаяОрганизация"       ;
                  
    Запрос.УстановитьПараметр("НужнаяОрганизация",ИП__ЕВ);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() ЦИКЛ
        Обж = Выборка.Ссылка.ПолучитьОбъект();
        Обж.Организация  = ИП__ЕВ;
        Обж.Записать();
    КонецЦикла;
2 Grinx
 
06.03.15
22:41
мда...
3 Kaukass
 
06.03.15
22:44
Лефмихалыч, а чего я не так сделал в данном случае?
4 Лефмихалыч
 
06.03.15
22:44
(3) да всё!
5 Лефмихалыч
 
06.03.15
22:46
я предельно не понимаю ни фига. Даешь человеку готовый код, в котором написано, как правильно, супротив того неправильного, что у него есть. И - фигак -вопрос такой на засыпку: "Лефмихалыч, а чо не так?"
ну вот то, что отличается от (1), то и не так, ёптыть! Очевидно же!..
6 Kaukass
 
06.03.15
22:48
Готовый код - это рыбка(Спасибо) , просто заинтересован в сборке удочки.
7 Лефмихалыч
 
06.03.15
22:52
(6) в 1С нельзя стримить. То есть конструкции вида Одно.Другое().Третье().Четвертное().Пятое() не живут в общем случае. ПОлучил объект - сохрани в переменной и с ней работай.
8 Лефмихалыч
 
06.03.15
23:45
+(7) и любые НайтиПо*() внутри цикла использовать нельзя, равно как и чтоТО.ЧтоТО.ЧТоЛибоЕще - получение реквизитов от реквизитов. Ибо это запрос в цикле. У программистов 1С от такого шерсть на ладошках вырастает и слепоглазие
9 Kaukass
 
07.03.15
07:29
(7)А я то думаю, что это за зуд такой появился в ладошках... И временами резкость теряется. ;)
10 User_Agronom
 
07.03.15
08:44
(0) ...//----Это не работает --->>>>>>>          Справочники.ДоговорыКонтрагентов.записать();

Весь справочник записывать собрался.
И как это должно работать, по твоему мнению?
11 Kaukass
 
07.03.15
09:52
Ни как не могёт работать.
Возникла другая заморочка: когда в модуле справочника отрабатывает процедура "перед записью", то получаю отказ.
{Существуют документы, проведенные по договору "Договор №ПЕ29...}.
Как  быть? 1. а) Запомнить где нибудь, какие документы были проведены, б) затем распровести их, изменить справочник, в)а потом пос списку из "а)" провести заново.
2. Временно отключить проверку в справочнике.
12 Мимохожий Однако
 
07.03.15
09:54
п.1
13 Kaukass
 
07.03.15
09:57
В этой же процедуре создать структуру или временную таблицу?
14 Kaukass
 
07.03.15
09:58
Туплю. Можно сохранить в Выборке список проведенных доков
15 Web00001
 
07.03.15
10:01
п2. Объект.Спр.ОбменДанными.Загрузка = Истина :)
16 Web00001
 
07.03.15
10:02
ПерваяТочка лишняя подразумевалось ОбъектСпр