Имя: Пароль:
1C
1С v8
Изменение записей регистра сведений
0 rodrigez
 
30.04.12
01:42
Здравствуйте!
Есть табличная часть документа, данные которой заполняются из регистра сведений. В самом документе пользователем добавляется значение, которое должно попасть, в еще незаполненный, ресурс этого же РС.
Ка правильно найти строки  РС, которые сосуществуют строкам в табличной части документа и записать там значение нового ресурса.
1 Anton_2011
 
30.04.12
02:54
Давай лучше в КС срубимся?
2 Anton_2011
 
30.04.12
05:11
Ну CS - Каунтер-Страйк. Counter-Strike хосподи ты боже мой. Разрешаю сервак самому поднять, разрешаю читы - мне всё равно, я все равно тебя порву.
Споемся по ГиперТерминалу.
3 ILM
 
гуру
30.04.12
07:46
(0) В обработке проведения))). Регистратор, номер строки - это записи регистра - ну или используй КлючЗаписи. Поищи в типовых.
Хотя, что-то в постановке неверно...
4 rodrigez
 
30.04.12
09:54
(3) Это я знаю....
Вот, что я делаю....

Процедура ОбработкаПроведения(Отказ, РежимПроведения)    
         
       
   
   Запись = РегистрыСведений.РасписаниеМаршрутов.Выбрать(НачалоДня(Дата),КонецДня(Дата+1),);
   Для Каждого СтрокаТабличнойЧасти ИЗ СписокМестДоставки Цикл
       ОтборДок = Новый Структура;
       ОтборДок.Вставить("Клиент",СтрокаТабличнойЧасти.Клиент);
       ОтборДок.Вставить("Номенклатура",СтрокаТабличнойЧасти.Номенклатура);
       ОтборДок.Вставить("АдресДоствки",СтрокаТабличнойЧасти.АдресДоствки);
       ОтборДок.Вставить("МестоРазмещения",СтрокаТабличнойЧасти.МестоРазмещения);
       
       
       Пока Запись.Следующий() Цикл
           ОтборРег = Новый Структура;
           ОтборРег.Вставить("Клиент",Запись.Клиент);
           ОтборРег.Вставить("Номенклатура",Запись.Номенклатура);
           ОтборРег.Вставить("АдрессДоставки",Запись.АдрессДоставки);
           ОтборРег.Вставить("МестоРазмещения", Запись.МестоРазмещения);
           

           КлючЗаписиРег = РегистрыСведений.РасписаниеМаршрутов.СоздатьКлючЗаписи(ОтборРег);
       Если ОтборДок = КлючЗаписиРег Тогда            
               
               МенеджерЗаписи = Запись.ПолучитьМенеджерЗаписи();
               МенеджерЗаписи.Экспедитор = Экспедитор;
               МенеджерЗаписи.Записать();
           КонецЕсли;
       КонецЦикла;    
   КонецЦикла;
КонецПроцедуры

Вот это извращение )) не работает

ОтборДок = КлючЗаписиРег

Спасибо
5 rodrigez
 
30.04.12
11:46
ну вот еще раз нагло спрошу .....)))
Просто надо переделать вот это, хотя оно работает.... )))

Процедура ОбработкаПроведения(Отказ, РежимПроведения)    
       //Запрос = Новый Запрос;
       //Запрос.Текст = "";
       
   
       Для Каждого СтрокаТабличнойЧасти ИЗ СписокМестДоставки Цикл
       ОтборДок = Новый Структура;
       ОтборДок.Вставить("Клиент",СтрокаТабличнойЧасти.Клиент);
       ОтборДок.Вставить("Номенклатура",СтрокаТабличнойЧасти.Номенклатура);
       ОтборДок.Вставить("АдресДоствки",СтрокаТабличнойЧасти.АдресДоствки);
       ОтборДок.Вставить("МестоРазмещения",СтрокаТабличнойЧасти.МестоРазмещения);
       
       Запись = РегистрыСведений.РасписаниеМаршрутов.Выбрать(НачалоДня(Дата),КонецДня(Дата+1),);
       Пока Запись.Следующий() Цикл
           ОтборРег = Новый Структура;
           ОтборРег.Вставить("Клиент",Запись.Клиент);
           ОтборРег.Вставить("Номенклатура",Запись.Номенклатура);
           ОтборРег.Вставить("АдрессДоставки",Запись.АдрессДоставки);
           ОтборРег.Вставить("МестоРазмещения", Запись.МестоРазмещения);
            ОтборРег.Вставить("НомерЗаказа", Запись.МестоРазмещения);

           КлючЗаписиРег = РегистрыСведений.РасписаниеМаршрутов.СоздатьКлючЗаписи(ОтборРег);
           Если ОтборДок.Клиент = КлючЗаписиРег.Клиент
               и ОтборДок.Номенклатура=КлючЗаписиРег.Номенклатура
               и ОтборДок.АдресДоствки = КлючЗаписиРег.АдрессДоставки
               и ОтборДок.МестоРазмещения =КлючЗаписиРег.МестоРазмещения Тогда            
               МенеджерЗаписи = Запись.ПолучитьМенеджерЗаписи();
               МенеджерЗаписи.Экспедитор = Экспедитор;
               МенеджерЗаписи.Записать();
           КонецЕсли;
       КонецЦикла;    
   КонецЦикла;
КонецПроцедуры
6 hhhh
 
30.04.12
12:25
а если так?

    Пока Запись.Следующий() Цикл
                МенеджерЗаписи = Запись.ПолучитьМенеджерЗаписи();
               МенеджерЗаписи.Клиент = Запись.Клиент;
               МенеджерЗаписи.Номенклатура = Запись.Номенклатура;
               МенеджерЗаписи.АдресДоставки = Запись.АдресДоставки;
               МенеджерЗаписи.МестоРазмещения = Запись.МестоРазмещения;
               МенеджерЗаписи.Экспедитор = Экспедитор;
               МенеджерЗаписи.Записать();
        КонецЦикла;
7 ILM
 
гуру
30.04.12
13:08
Записи нужно наборами писать. В документе берешь движение по нужному регистру, заполняешь и потом пишешь документ в режиме проведения. Все сразу и без маеты (4),(5),(6). Поменял документ - меняются записи.
8 rodrigez
 
30.04.12
14:37
Спасибо!!!
9 moshefoo
 
30.04.12
14:42
П.М прав