Имя: Пароль:
1C
1C 7.7
v7: Не записываюются даные в справочник
0 geniusbsd
 
13.01.17
12:08
День добрый не могу понять что делаю не так
Пытаюсь записать реквизит в элемент справочника, при записи он не изменяется и ошибку не дает. остается просто пустым

Процедура ВыполненыеРаботы()
ДокИстория = СоздатьОбъект("Документ.ИсторияРаботПоКартриджу");
Спр = СоздатьОбъект("Справочник.КартриджиКлиента");  
Если ПустоеЗначение(КартриджКлиента.ИстрияРабот) =1 Тогда
Сообщить("Картридж у нас не был");
ДокИстория.Новый();
ДокИстория.Записать();
Если Спр.НайтиПоКоду(КартриджКлиента.Код,0) = 1 Тогда
    НайдКарт = Спр.ТекущийЭлемент();
     НайдКарт.ИстрияРабот = ДокИстория.ТекущийДокумент();
     Спр.Записать();
     Сообщить("Все записано");
Иначе
Сообщить("Картридж не найден");    
КонецЕсли;
ИНАЧЕ
Сообщить("Уже заправлялся");
ОткрытьФорму(КартриджКлиента.ИстрияРабот);
КонецЕсли;    
КонецПроцедуры
1 Альбатрос
 
13.01.17
12:10
Может ИстОрияРабот?
2 Slypower
 
13.01.17
12:11
отладчик проходит строку  Спр.Записать();?
Может поставь:  Спр.ТекущийЭлемент().Записать();
3 1dvd
 
13.01.17
12:12
НайдКарт = Спр.ТекущийЭлемент();
     НайдКарт.ИстрияРабот = ДокИстория.ТекущийДокумент();
     Спр.Записать();

Это что за порнография?
4 Slypower
 
13.01.17
12:12
или же НайдКарт.Записать()?
5 1dvd
 
13.01.17
12:12
ТекущийЭлемент() возвращает ссылку, а тебе нужен объект
6 Slypower
 
13.01.17
12:13
(3) это в справичнике Реквизит Документ, который должен быть записан. Поэтому и нужно:НайдКарт.Записать()
7 Cool_Profi
 
13.01.17
12:13
НайдКарт = Спр.ТекущийЭлемент();
     НайдКарт.ИстрияРабот = ДокИстория.ТекущийДокумент();
     НайдКарт.Записать();
8 1dvd
 
13.01.17
12:16
(7) садись, два
9 Cool_Profi
 
13.01.17
12:16
(8) обоснуй
10 1dvd
 
13.01.17
12:16
Если Спр.НайтиПоКоду(КартриджКлиента.Код,0) = 1 Тогда
     Спр.ИстрияРабот = ДокИстория.ТекущийДокумент();
     Спр.Записать();
     Сообщить("Все записано");
11 1dvd
 
13.01.17
12:16
(9) см (5)
12 geniusbsd
 
13.01.17
12:17
Я так пробывал
НайдКарт.Записать();
{Документ.ЗаправкаИвосстановлениекартриджей.Форма.Модуль(14)}: Не выбран элемент!
13 geniusbsd
 
13.01.17
12:17
Справочник Подчиненый
14 Tatitutu
 
13.01.17
12:19
(13) он у тебя случайно не периодический ?
15 Cool_Profi
 
13.01.17
12:21
(12) Тогда (10)
(11) возможно, ты прав. в 77 понятия ссылки и объекта поменялись местами
16 silent person
 
13.01.17
12:24
в (5) написали правильно вместо этого:
  НайдКарт = Спр.ТекущийЭлемент();
     НайдКарт.ИстрияРабот = ДокИстория.ТекущийДокумент();
     Спр.Записать();

надо писать так

    Спр.ИстрияРабот = ДокИстория.ТекущийДокумент();
     Спр.Записать();
17 silent person
 
13.01.17
12:25
ну и "ИстрияРабот"  лучше исправить на "ИсторияРабот"
18 Cool_Profi
 
13.01.17
12:25
(17) Почему история, а не истерия? )
19 1dvd
 
13.01.17
12:29
в (14) правильный вопрос задали
20 geniusbsd
 
13.01.17
12:34
Всем Спасибо получилось  как (16)