Имя: Пароль:
1C
1С v8
v8: Обработка загрузки реквизита справочника в регистр сведений
,
0 Яна93
 
15.10.13
14:15
В общем на работе дали задание..есть регистр сведений с колонками Контрагент, ДоговорКонтрагента и т.д...и есть справочник Контрагенты..так вот..транзакции падают на договора тех контрагентов которые прописаны в этом регистре сведений..но там договора уже устарели..и надо будет вручную проставлять новые договора у этих контрагентов, которые в справочнике контрагенты отмечены как Основные договора..В общем прошу Вас подсказать с чего начать? сначала сделать запрос по справочнику контрагенты чтобы получить основные договора и уже после записать эти договора в регистр сведений..или их получить с помощью выборки? или еще как по другому?
2 Яна93
 
15.10.13
14:49
Тема активна =) кстати..простите за бестактность, Всем привет!:)
3 Maxus43
 
15.10.13
15:03
>>сначала сделать запрос по справочнику контрагенты чтобы получить основные договора и уже после записать эти договора в регистр сведений..или их получить с помощью выборки?
можно и так, пробуй
4 Яна93
 
15.10.13
15:06
(3) так выборкой или запросом?)))
5 Яна93
 
15.10.13
15:07
Просто мне необходимо лишь проставить эти договора в регистр сведений..чтобы остальные колонки были не тронуты...)
6 hhhh
 
15.10.13
15:08
(4) запросом конечно. Ну какая выборка, чего вы прикалываетесь?
7 Яна93
 
15.10.13
15:09
(6) не прикалываюсь) просто мои знания в программировании ограничены)) читала лишь учебник Радченко))
8 MSII
 
15.10.13
15:12
Зачем бухгалтеру осваивать программирование?
9 Яна93
 
15.10.13
15:14
(8) разве плохо знать еще и обратную сторону 1с чтобы вырости до Аудитора высшего класса)) и вообще пошла на это лишь для того чтобы облегчить себе жизнь..)
10 Nenaviwu1c20
 
15.10.13
15:15
Пишите запрос к регистру типа
ВЫБРАТЬ
КОНТРАГЕНТ как Контрагент
Договор как Договор
из ИмяВашегоРегистра
А затем Создавайте набор записей,устанавливайте отбор по контрагенту,Устанавливайте договор основным а затем записывайте набор
11 Nenaviwu1c20
 
15.10.13
15:15
даже договор не нужно выбирать
12 Nenaviwu1c20
 
15.10.13
15:16
Кстати такой симпотичной дамочке как вы сделаем безвозмездно :)
13 Яна93
 
15.10.13
15:21
Я записала вон так..без синонимов..
ВЫБРАТЬ
Контрагент,
ДоговорПоСмартКартам
ИЗ
РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
14 Яна93
 
15.10.13
15:22
(10) но разве запрос надо делать на регистр? а не на справочник?
15 Nenaviwu1c20
 
15.10.13
15:25
у вас в регистре сидит корректная информация про контрагентов и некорректная про их договора я верно понял?
16 Nenaviwu1c20
 
15.10.13
15:26
если да то пишите к регистру запроса там будете брать основной договор вместо проставленного
17 hhhh
 
15.10.13
15:26
(14) и то и другое надо, если честно.
18 Яна93
 
15.10.13
15:26
(15) Да..хочу проставить корректные договора которые в справочнике контрагенты указаны как Основной..
19 Nenaviwu1c20
 
15.10.13
15:27
Даже более того скажу чтобы не грузить программу сделайте еще один отбор на то является ли проставленный в регистре договор основным договором текущего контрагента если да то продолжить
20 Nenaviwu1c20
 
15.10.13
15:28
(17)  (18) Зачем же запрос по обе стороны если регистр заполнен верно.Пускай лучше к регистру запросик напишет и создает набор записей с отбором по контрагенту и основному договору
21 Яна93
 
15.10.13
15:28
(17) так..два запроса..а как тогда их применить? я лишь получу данные..и после их сравнивать?
22 Яна93
 
15.10.13
15:30
(19) (20) так..надо подумать)) я не так быстро перевариваю)
23 Nenaviwu1c20
 
15.10.13
15:31
конфа скоко весит?
24 Nenaviwu1c20
 
15.10.13
15:31
пришли я сделаю
25 Nenaviwu1c20
 
15.10.13
15:31
сижу ...пинаю
26 Nenaviwu1c20
 
15.10.13
15:32
(21) Запрос один.Второе действие это создатьМенеджерЗаписи()у регистра сведений
27 Яна93
 
15.10.13
15:34
(23) (24) (25) конфигурация вроде большая будет...
у меня вроде копия была дома..может на флешке..сейчас посмотрю..
28 Яна93
 
15.10.13
15:37
(23) 250 весит..
29 Яна93
 
15.10.13
15:37
(26) так..на счет менеджера..сейчас набросать попробую..
30 samozvanec
 
15.10.13
15:38
(0) запросом выбрать все записи, создать набор, обойти в цикле выборку:
  запись = набор.добавить();
  ЗаполнитьЗначенияСвойств(Запись, Выборка);
  Запись.Договор = Выборка.Контрагент.ОсновнойДоговор;

потом набор записать.
31 samozvanec
 
15.10.13
15:39
(29) менеджер не тру, ломать так весь регистр.
32 Nenaviwu1c20
 
15.10.13
15:39
ТекЗапись = РегистрыСведений.ABCКлассификацияПокупателей.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговор;
КонецЦикла;
ТекЗапись.Записать(Истина);
33 Nenaviwu1c20
 
15.10.13
15:39
Допилишь сама .Писал интуитивно
34 Nenaviwu1c20
 
15.10.13
15:40
ABCКлассификацияПокупателей замени на свой регистр
35 samozvanec
 
15.10.13
15:40
+(31) чтоб не сломать, выбирай ВСЕ записи регистра и ВСЕ поля. отбор не надо будет, запишешь одним куском. если сцыкотно, делать в транзакции.
36 Яна93
 
15.10.13
15:43
(32) (35) А что я могу сломать? сейчас на копии попробую)
37 hhhh
 
15.10.13
15:46
(26) если новые контрагенты добавились. Тогда нужно и список контрагентов прошерстить.
38 Nenaviwu1c20
 
15.10.13
15:47
а выборке условие поставь что договор в регистре не равен основному договору контрагента чтобы не изменять лишние записи
39 Nenaviwu1c20
 
15.10.13
15:47
(37) там же не было постановки про новых контрагентов если я не ошибаюсь
40 Nenaviwu1c20
 
15.10.13
15:47
(36) как успехи?
41 Nenaviwu1c20
 
15.10.13
15:48
(37) и чем мы будем заполнять регистр ведь там скорее всего кроме контрагентов и договоров используется многой ненужной зурны
42 samozvanec
 
15.10.13
15:50
(36) все, что душе угодно)
(37) новый пускай добавляются обычным путем, редактируем лишь текущих
43 Яна93
 
15.10.13
15:50
(41) Записала вот так..не ругайся если не правильно))
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагент,
|ДоговорПоСмартКартам
|ИЗ
|РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам";
РезультатЗапроса = Запрос.Выполнить();
ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговор;
КонецЦикла;
ТекЗапись.Записать(Истина);
44 Яна93
 
15.10.13
15:51
но вышли ошибки...пока не поняла что к чему..
{Форма.Форма.Форма(52,39)}: Переменная не определена (Выборка)
ТекЗапись.Отбор.Контрагент.Установить(<<?>>Выборка.Контрагент);                        (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(53,49)}: Переменная не определена (Выборка)
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(<<?>>Выборка.ДоговорПоСмартКартам); (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(56,32)}: Переменная не определена (Выборка)
    стр.ДоговорПоСмартКартам = <<?>>Выборка.Контрагент.ОсновнойДоговор; (Проверка: Толстый клиент (обычное приложение))
45 Nenaviwu1c20
 
15.10.13
15:55
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагент,
|ДоговорПоСмартКартам
|ИЗ
|РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|ГДЕ
|    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ДоговорПоСмартКартам <> Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Контрагент.ОсновнойДоговор";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговор;
КонецЦикла;
ТекЗапись.Записать(Истина);
46 Nenaviwu1c20
 
15.10.13
15:56
дальше разберешся сама?
47 Nenaviwu1c20
 
15.10.13
16:03
получилося?
48 Яна93
 
15.10.13
16:08
(47) не сработала..в начале ошибки были..но там мелочи..вот так вышло все:
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагент,
|ДоговорПоСмартКартам
|ИЗ
|РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|ГДЕ
|    РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ДоговорПоСмартКартам <> РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Контрагент.ОсновнойДоговорКонтрагента";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговор;
КонецЦикла;
ТекЗапись.Записать(Истина);

В общем на форме у меня лишь одна кнопка Выполнить..нажала и как будто что то произошло..посмотрела в регистр..но там все по прежнему..без изменений..
49 Яна93
 
15.10.13
16:09
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагент,
|ДоговорПоСмартКартам
|ИЗ
|РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|ГДЕ
|    РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ДоговорПоСмартКартам <> РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Контрагент.ОсновнойДоговорКонтрагента";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговор;
КонецЦикла;
ТекЗапись.Записать(Истина);
        
КонецПроцедуры
50 Яна93
 
15.10.13
16:26
может нужно сначало сделать эту процедуру &НаСервере, и уже после ссылаться на нее при нажатии кнопки?) вроде НаСервере или НаКлиенте тоже играет роль...
51 Enders
 
15.10.13
16:33
У тебя УФ?)
очень сомнительно, иначе код бы вообще не отработал, так как
НаКлиенте нету объекта "Запрос" ;)
Да, кстати, а регистр подченён регистратору или нет?
52 НеБорис Нуралиев
 
15.10.13
16:34
(49) Я не вижу тут конструкции

Пока Выборка.Следующий() Цикл

КонецЦикла
53 Яна93
 
15.10.13
16:35
Нет..не подчинён..а уф это управляемая форма?) (51)
54 fmrlex
 
15.10.13
16:38
Вот что фотка в профиле делает...
55 Enders
 
15.10.13
16:38
(53)Ага, она) Управляемая форма)
и кстати (52)+ Нету цикла на выборку)
56 Яна93
 
15.10.13
16:39
вроде в 8.1 нет управляемой формы..если я правильно понимаю..ну платформа у меня конечно 8.2, а вот конфигурация БП 1.6...
57 Яна93
 
15.10.13
16:41
(54)а что там плохого? если не нравлюсь..то не надо на личности переходить(
58 Яна93
 
15.10.13
16:42
(54)ой, прости) не так поняла..просто голова забита этой обработкой)
59 Яна93
 
15.10.13
16:47
(55) так будет вернее?


Процедура КнопкаВыполнитьНажатие(Кнопка)
    
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагент,
|ДоговорПоСмартКартам
|ИЗ
|РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|ГДЕ
|    РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ДоговорПоСмартКартам <> РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Контрагент.ОсновнойДоговорКонтрагента";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() цикл
ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
ТекЗапись.Отбор.ДоговорПоСмартКартам.Установить(Выборка.ДоговорПоСмартКартам);
ТекЗапись.Прочитать();
Для каждого стр из ТекЗапись цикл
    стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговорКонтрагента;
КонецЦикла;
КонецЦикла;

ТекЗапись.Записать(Истина);
        
КонецПроцедуры
60 Enders
 
15.10.13
16:53
ТекЗапись.Записать(Истина);
поместите в цикл Выборка.Следующий()
61 НеБорис Нуралиев
 
15.10.13
16:55
(59) Не совсем.
Вот, держи:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|   Контрагент
|ИЗ
|   РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() цикл
    ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
    ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
    ТекЗапись.Прочитать();
    Для каждого стр из ТекЗапись цикл
        стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговорКонтрагента;
    КонецЦикла;
    
    ТекЗапись.Записать(Истина);
КонецЦикла;
62 Яна93
 
15.10.13
17:00
(61) ошибка вышла...
{Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (Записать)
ТекЗапись.Записать(Истина);
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам: 01.03.0209, Майнская райСББЖ, №216 от 01.07.2013, 3 080, 41 253 080, ложь (Регистр сведений: Информация по работе контрагентов по смарт-картам; Номер строки: 1; Поле: ДоговорПоСмартКартам)
63 Enders
 
15.10.13
17:02
xD я догадывался о таком исходе)
А теперь второе.
Если поставить отбор только на контрагента, и менять потом договор, то это будут совершенно разные записи, то-есть у вас в регистре потом будет
Контр1 ДоговорНеправильный
Контр2 ДоговорПравильный
64 НеБорис Нуралиев
 
15.10.13
17:03
(62) Не может быть. Нет в этом коде отбора по договору, только  по контрагенту.

И вообще, я надеюсь, ты не на рабочей базе это делаешь?
65 Яна93
 
15.10.13
17:04
(64) на копии)
66 Enders
 
15.10.13
17:05
блин) не Контр2, а всё тот же Контр1
Выход из ситуации возможен такой:
1. Получаете контрагентов запросом
2. Делаете набор с отбором по контрагенту
3. Читаете набор, грузите его во Таблицу Значений
4. Очищаете набор
5. Записываете набор
5. Заменяете в Таблице значений договор
6. Грузите Таблицу в набор
7. Записываете набор
67 НеБорис Нуралиев
 
15.10.13
17:05
>Если поставить отбор только на контрагента, и менять потом >договор, то это будут совершенно разные записи, то-есть у вас >в регистре потом будет
>Контр1 ДоговорНеправильный
>Контр2 ДоговорПравильный

(63) С фига ли?
68 Яна93
 
15.10.13
17:06
(66) если честно я в ступоре)
69 НеБорис Нуралиев
 
15.10.13
17:10
(68) Вообще можно сделать все проще. Типа вот этого:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|   Контрагент,
|    Контрагент.ОсновнойДоговорКонтрагента КАК ДоговорПоСмарткартам
|    Поле1,
|    Поле2,
|    Поле999999
|
|ИЗ
|   РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам
|";

ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
ТекЗапись.Загрузить(Запрос.Выполнить.Выгрузить());
ТекЗапись.Записать(Истина);

В этом примере Поле1, Поле2, Поле99999  -- это поля регистра, который тебе нужно обновить.
70 Яна93
 
15.10.13
17:13
Это мне все поля перечислять надо?) (69)
71 НеБорис Нуралиев
 
15.10.13
17:18
(70) Ну да, их там много? Легче всего это сделать с помощью конструктора запроса.
72 Яна93
 
15.10.13
17:19
(69) вышла ошибка
{Форма.Форма.Форма(62)}: Поле объекта не обнаружено (Выполнить)
ТекЗапись.Загрузить(Запрос.Выполнить.Выгрузить());
73 НеБорис Нуралиев
 
15.10.13
17:21
(72) Смотри внимательнее. Эта строчка в начале есть?
Запрос = Новый Запрос;
74 Enders
 
15.10.13
17:21
ТекЗапись.Загрузить(Запрос.Выполнить().Выгрузить());
Скобки забыла
75 Яна93
 
15.10.13
17:24
(74) сделала) но тут другая ошибка...
{Форма.Форма.Форма(62)}: Ошибка при вызове метода контекста (Выполнить)
ТекЗапись.Загрузить(Запрос.Выполнить().Выгрузить());
по причине:
{(5, 5)}: Синтаксическая ошибка "Поле1,"
<<?>>Поле1,
76 НеБорис Нуралиев
 
15.10.13
17:28
(75) Вместо слов "Поле1", "Поле2" и "Поле99999" нужно перечислить названия полей регистра Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам. Я же не знаю какие они там у тебя. И лучше всего воспользоваться конструктором запроса.

А еще лучше попроси своего парня сделать это за тебя.
77 Яна93
 
15.10.13
17:32
(76) я по сути скорее карьеристка) все время трачу на самообразование..на парней нет времени)) я как в Америке..выйду замуж лет к 40)))

кстати на счет полей..я ведь действительно про поля подумала..а не про столбцы как оказалось)))
78 Яна93
 
15.10.13
17:32
и не проще было тогда * все столбцы выбрать?
79 НеБорис Нуралиев
 
15.10.13
18:23
(78) Нет, не проще. Тебе ведь нужно вместо договора из регистра подставить основной договор контрагента. Именно для этого нужна строка "Контрагент.ОсновнойДоговорКонтрагента КАК ДоговорПоСмарткартам" в запросе. С помощью нее мы подменяем значение реквизита ДоговорПоСмаркартам.

После этого мы по-сути загружаем готовый набор записей обратно в регистр.

(77) В России для построения карьеры не обязательно отказываться от всего остального. И вообще, по-настоящему успешный человек должен стараться развиваться во всех направлениях: карьера, семья, тело, дух, ум.
80 Яна93
 
15.10.13
18:28
(79) Не получается все и сразу у меня пока)) надеюсь у меня руки не опустятся) а на счет программы пока нет возможности попробывать чтото..у подруги день рождение..сейчас поеду..завтра в обед снова попробую..если не получится-отпишусь здесь..Спасибо, друзья, что помогаете!
81 Яна93
 
16.10.13
11:45
Всем ОГРОМНОЕ СПАСИБО! Все получилось..если кому интересно-вот  окончательный вариант:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Контрагент,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Период,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ДоговорПоСмартКартам,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.КодОЦ,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.КодПЦ,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ОсновнойКодСинхронизации,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.Филиал,
               |    Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.ТипКлиента
               |ИЗ
               |    РегистрСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам КАК Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() цикл
    ТекЗапись = РегистрыСведений.Ю_ИнформацияПоРаботеКонтрагентовПоСмартКартам.СоздатьНаборЗаписей();
    ТекЗапись.Отбор.Контрагент.Установить(Выборка.Контрагент);                      
    ТекЗапись.Прочитать();
    Для каждого стр из ТекЗапись цикл
        стр.ДоговорПоСмартКартам = Выборка.Контрагент.ОсновнойДоговорКонтрагента;
    КонецЦикла;
    
    ТекЗапись.Записать(Истина);
КонецЦикла;
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс