Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:25

Как измени реквизит справочника при проведении документа

Автор Gendelf, 18 ноя 2013, 17:27

0 Пользователей и 1 гость просматривают эту тему.

Gendelf

Добрый день. В документе ПоступлениеКниги, при проведении, нужно прописать кусок кода который будет менять реквизит  справочника Книга (реквизит Состояние). Проблеммы с сылкой к реквизиту справочника... как до него добраться, я не знаю.
Вот что получилось, конечно же не работает.
PS ТЧКнига - табчасть документа, в ней реквизит Книга с ссылкой к справочнику Книга.
//Смена состояния книги
   
    Для каждого СтрокаТЧ Из ТЧКнига Цикл
       
        ТЧКнига.Книга.Состояние = Перечисления.СостояниеКниги.ВНаличии;
       
    КонецЦикла;


Новенькая

  СтрокаТЧ.Книга.Состояние = Перечисления.СостояниеКниги.ВНаличии;

Gendelf

Цитата: Новенькая от 18 ноя 2013, 17:29
  СтрокаТЧ.Книга.Состояние = Перечисления.СостояниеКниги.ВНаличии;
Поле объекта недоступно для записи (Состояние)
что-то нужно ещё?

MuI_I_Ika

//Смена состояния книги
   
    Для каждого СтрокаТЧ Из ТЧКнига Цикл
       
        Если ЗначениеЗаполнено(ТЧКнига.Книга)
        СпрОбъект = ТЧКнига.Книга.ПолучитьОбъект();
        СпрОбъект.Состояние = Перечисления.СостояниеКниги.ВНаличии;
        СпрОбъект.Записать();
       
    КонецЦикла;

Gendelf

При
Для каждого СтрокаТЧ Из ТЧКнига Цикл
       
        Если ЗначениеЗаполнено(ТЧКнига.Книга) Тогда
        СпрОбъект = ТЧКнига.Книга.ПолучитьОбъект();
        СпрОбъект.Состояние = Перечисления.СостояниеКниги.ВНаличии;
        СпрОбъект.Записать();
    КонецЕсли;
    КонецЦикла;


Поле объекта не обнаружено (Книга)
ругается на Если....

LordWizard

Найди его в справочнике и сделай следующее

//Начало твоего цикла
//то, что ты написал
ТекущаяКнига = ТЧКнига.Книга.Ссылка; //получил ссылку на объект
ТекущаяКнига.Состояние = Перечисления.СостояниеКниги.ВНаличии;// присвоил значение реквизиту
ТекущаяКнига.Записать(); // записал элемент
//конецтвоего цикла

Добавлено: 18 ноя 2013, 17:38


Цитата: Gendelf от 18 ноя 2013, 17:34
При
Для каждого СтрокаТЧ Из ТЧКнига Цикл
       
        Если ЗначениеЗаполнено(ТЧКнига.Книга) Тогда
        СпрОбъект = ТЧКнига.Книга.ПолучитьОбъект();
        СпрОбъект.Состояние = Перечисления.СостояниеКниги.ВНаличии;
        СпрОбъект.Записать();
    КонецЕсли;
    КонецЦикла;


Поле объекта не обнаружено (Книга)
ругается на Если....

А с чего ты или точнее как ты собираешь ТЧКнигу?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

MuI_I_Ika

Прошу прощения ступил

//Смена состояния книги
   
    Для каждого СтрокаТЧ Из ТЧКнига Цикл
       
        Если ЗначениеЗаполнено(СтрокаТЧ.Книга) Тогда
            СпрОбъект = СтрокаТЧ.Книга.ПолучитьОбъект();
            СпрОбъект.Состояние = Перечисления.СостояниеКниги.ВНаличии;
            СпрОбъект.Записать();
        КонецЕсли;

    КонецЦикла;

LordWizard

//Начало твоего цикла
//то, что ты написал
ТекущаяКнига = СтрокаТЧ.Книга.Ссылка; //получил ссылку на объект // и я ступил - понедельник день тяжелый!!
ТекущаяКнига.Состояние = Перечисления.СостояниеКниги.ВНаличии;// присвоил значение реквизиту
ТекущаяКнига.Записать(); // записал элемент
//конецтвоего цикла
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Gendelf

ребят, вы меня запутали... как должен выглядить код?
Добавлено: 18 ноя 2013, 18:12


Для каждого СтрокаТЧ Из ТЧКнига Цикл
    Если ЗначениеЗаполнено(ТЧКнига.Книга) Тогда
    ТекущаяКнига = СтрокаТЧ.Книга.Ссылка; //получил ссылку на объект // и я ступил - понедельник день тяжелый!!
    ТекущаяКнига.Состояние = Перечисления.СостояниеКниги.ВНаличии;// присвоил значение реквизиту
    ТекущаяКнига.Записать(); // записал элемент
    КонецЕсли;
КонецЦикла;


так вроде?

Добавлено: 18 ноя 2013, 18:15


Поле объекта не обнаружено (Книга)
на 2 строке...
ужас, как сложно то.

MuI_I_Ika


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск