Имя: Пароль:
1C
1С v8
Заполнение полей в строках документа
0 vladimirpetrov11
 
23.01.13
09:09
Всем привет! При выполнении записи пустых полей в строках документа выдает ошибку: "Поле объекта Дом не доступно для записи". Вопрос: Как правильно производить запись в данных случаях? Вот модуль:


       Запрос = Новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ркПоказанияСчетчиковСостав.ЛицевойСчет,
       |    ркПоказанияСчетчиковСостав.Дом,
       |    ркПоказанияСчетчиковСостав.Помещение
       |ИЗ
       |    Документ.ркПоказанияСчетчиков.Состав КАК ркПоказанияСчетчиковСостав
       |ГДЕ
       |    ркПоказанияСчетчиковСостав.Ссылка = &Документ";
       
       Запрос.УстановитьПараметр("Документ", Документ);
       Результат = Запрос.Выполнить();
       
       ВыбДетЗап = Результат.Выбрать();
       Сообщить("Количество записей: "+ВыбДетЗап.Количество());
       Пока ВыбДетЗап.Следующий() Цикл
           Если ЗначениеЗаполнено(ВыбДетЗап.Дом)=1 тогда
               Продолжить;
           Иначе
               Спр=Справочники.ркЛицевыеСчета.НайтиПоКоду(ВыбДетЗап.лицевойСчет.Код);
               //Сообщить(ВыбДетЗап.ЛицевойСчет);
               ВыбДетЗап.Дом=ВыбДетЗап.ЛицевойСчет.Дом;
               ВыбДетЗап.Помещение=ВыбДетЗап.ЛицевойСчет.Помещение;
           КонецЕсли;
1 НафНаф
 
23.01.13
09:10
заполнять надо объект, а не ссылку
2 Godofsin
 
23.01.13
09:11
получитьОбъект()
3 DrShad
 
23.01.13
09:11
ты их в выборке решил заполнить?
4 Godofsin
 
23.01.13
09:11
Когда уже закончатся вопросы подобного рода? =)
5 Рэйв
 
23.01.13
09:12
Давон пора уже разрабам изменить сообщение об этой ошибке на
"Поле объекта Дом не доступно для записи.ПОЛУЧИ ОБЪЕКТ,ЛОШАРА!!! "

:-)
6 Рэйв
 
23.01.13
09:13
Сколько тем бы не создалось!
7 Godofsin
 
23.01.13
09:14
(5) +100500 )))))
8 vladimirpetrov11
 
23.01.13
09:16
Дерьмом облили. Сделал получение, теперь пишет "Не выбран элемент"
9 НафНаф
 
23.01.13
09:16
(8) так выбери его!
10 Рэйв
 
23.01.13
09:17
(8)Покажи как получил
11 vladimirpetrov11
 
23.01.13
09:18
Спр=Справочники.ркЛицевыеСчета.НайтиПоКоду(ВыбДетЗап.лицевойСчет.Код);
               //Сообщить(ВыбДетЗап.ЛицевойСчет);
               Домик=ВыбДетЗап.Дом.ПолучитьОбъект();
               Квартира=ВыбДетЗап.Помещение.ПолучитьОбъект();
               Домик=ВыбДетЗап.ЛицевойСчет.Дом;
               Квартира=ВыбДетЗап.ЛицевойСчет.Помещение;
12 DrShad
 
23.01.13
09:18
об = Документ.ПолучитьОбъект()
Для каждого строка из Документ.Состав

и не нужно никаких запросов
13 DrShad
 
23.01.13
09:19
(11) тебе объект дока нужно было получить а не справочников :)))))))
14 vladimirpetrov11
 
23.01.13
09:19
Меня щас порвут я предчувствую....Всё через одно место длелал((
15 DrShad
 
23.01.13
09:20
(14) а ты не тупи :)))
16 Нуф-Нуф
 
23.01.13
09:20
17 vladimirpetrov11
 
23.01.13
09:21
Вот так у меня было:
Документ я получал как объект


       Документ=ВДЗ.Ссылка.ПолучитьОбъект();
       Запрос = Новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ркПоказанияСчетчиковСостав.ЛицевойСчет,
       |    ркПоказанияСчетчиковСостав.Дом,
       |    ркПоказанияСчетчиковСостав.Помещение
       |ИЗ
       |    Документ.ркПоказанияСчетчиков.Состав КАК ркПоказанияСчетчиковСостав
       |ГДЕ
       |    ркПоказанияСчетчиковСостав.Ссылка = &Документ";
       
       Запрос.УстановитьПараметр("Документ", Документ);
       Результат = Запрос.Выполнить();
       
       ВыбДетЗап = Результат.Выбрать();
       Сообщить("Количество записей: "+ВыбДетЗап.Количество());
       Пока ВыбДетЗап.Следующий() Цикл
           Если ЗначениеЗаполнено(ВыбДетЗап.Дом)=1 тогда
               Продолжить;
           Иначе
               Спр=Справочники.ркЛицевыеСчета.НайтиПоКоду(ВыбДетЗап.лицевойСчет.Код);
               //Сообщить(ВыбДетЗап.ЛицевойСчет);
               ВыбДетЗап.Дом=ВыбДетЗап.ЛицевойСчет.Дом;
               ВыбДетЗап.Помещение=ВыбДетЗап.ЛицевойСчет.Помещение;
           КонецЕсли;
           Сообщить(СокрЛП(ВыбДетЗап.Дом)+"  "+СокрЛП(ВыбДетЗап.Помещение));    
       КонецЦикла;
18 KUBIK
 
23.01.13
09:23
(17) Щас точно порвут
19 salvator
 
23.01.13
09:23
(17) А что мешает обращаться к ТЧ БЕЗ запроса?!
20 Нуф-Нуф
 
23.01.13
09:24
Еббать...
21 vladimirpetrov11
 
23.01.13
09:24
(18) Да меня здесь постоянно пинают, но помогают Слава Богу))
22 DrShad
 
23.01.13
09:24
(17) и даже запрос сработал!? не верю!!!
23 НафНаф
 
23.01.13
09:25
(17) выкинь все, пиши так:

Документ=ВДЗ.Ссылка.ПолучитьОбъект();
Для каждого Стр из Документ.Состав Цикл
 Если Не ЗначениеЗаполнено(Стр.Дом) Тогда
   Стр.Дом = Стр.ЛицевойСчет.Дом;
   Стр.Помещение = Стр.ЛицевойСчет.Помещение;
 КонецЕсли;
КонецЦикла;
Документ.Записать();
24 vladimirpetrov11
 
23.01.13
09:25
(19) Понял!! Я олень
25 Godofsin
 
23.01.13
09:25
(17) Обрати внимание на (12). Не надо никаких запросов
26 vladimirpetrov11
 
23.01.13
09:25
(22)Сработал))
27 Nzn
 
23.01.13
09:25
|ГДЕ
     ркПоказанияСчетчиковСостав.Ссылка = &Документ";
       
       Запрос.УстановитьПараметр("Документ", Документ);

Документ=ВДЗ.Ссылка.ПолучитьОбъект();

Не заработает
28 vladimirpetrov11
 
23.01.13
09:27
У меня было        Документ=ВДЗ.Ссылка;
Я пробовал поставить        Документ=ВДЗ.Ссылка.ПолучитьОъект(); и программа меня послала
29 salvator
 
23.01.13
09:27
Элемент справочника еще зачем-то получал...
30 vladimirpetrov11
 
23.01.13
09:28
Всем спасибо!!
31 vladimirpetrov11
 
23.01.13
09:28
(29)Я ж признался...олень))
32 DrShad
 
23.01.13
09:30
(31) все когда-то ими были, так что не растраивайся
33 Godofsin
 
23.01.13
09:31
(31) Свитер прикупи тематический ))))
34 vladimirpetrov11
 
23.01.13
09:41
Было бы неплохо если б мне статус обнулили, а то уже полоска в желтенькую начинает переходить)))
(33)Книгу просил заказать от предприятия по 8-ке, начальство головой покивало и всё, так что учусь по мере возникновения проблем в программе...
35 vmv
 
23.01.13
09:45
тс достоит уважения - его бъют ногами в живот, а он упорно идет вперед к знаниям, беру на работу)
36 Godofsin
 
23.01.13
09:49
(34) Все норм, не парься. Реально все с этого начинали =)
37 hhhh
 
23.01.13
10:00
(23) таки Стр.ЛицевойСчет.Дом нужно запросом получить. Потому что в цикле может тормозить.
38 НафНаф
 
23.01.13
10:16
(37) экономия на спичках (с) Гений 1С