Имя: Пароль:
1C
1С v8
Поле объекта недоступно для записи
0 LittlePumpkin
 
17.04.20
07:24
Я взяла выборку с регистра Хозрасчетный

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК НоменклатурнаяГруппа,
        |    ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        |    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаКТ
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты";
    

Хочу все счета в выборке поменять на другие. Написала код

Пока Выборка.Следующий() Цикл
        Если Выборка.Счет = Счет9001_04Ссылка Тогда
             Выборка.Счет = Счет9002_04Объект;
         ИначеЕсли Выборка.Счет = Счет9001_03Ссылка Тогда
             Выборка.Счет = Счет9002_03Объект;
         ИначеЕсли Выборка.Счет = Счет9001_02Ссылка Тогда
             Выборка.Счет = Счет9002_02Объект;
        ИначеЕсли Выборка.Счет = Счет9001_01Ссылка Тогда
             Выборка.Счет = Счет9002_01Объект;
         КонецЕсли;
     КонецЦикла;

При его выполнении система сообщает, что поле объекта недоступно для записи.До этого я специально получаю объекты, а не ссылки на них. Подскажите как исправить данную проблему?
1 Запасной
 
17.04.20
07:26
Круто, а что получить то хочешь?
2 LittlePumpkin
 
17.04.20
07:27
Хочу получить таблицу, где номенклатурные группы с 90.01 счета а счета им приписаны другие.
3 ads55
 
17.04.20
07:29
(0) "Выборка.Счет" так запрос только читать умеет...
4 LittlePumpkin
 
17.04.20
07:30
А как записать тогда?
5 Запасной
 
17.04.20
07:31
ТЗ = Запрос.Выполнить().Выгрузить();
Тз.КОлонки,Добавить("НовыйСчет");
Для Каждого Стр из ТЗ Цикл
Если Стр.Счет = Счет9001_04Ссылка Тогда
        Стр.НовыйСчет= Счет9002_04Объект;
6 LittlePumpkin
 
17.04.20
07:48
Благодарю! Это помогло, но возникла другая проблема. Я создаю набор записей:

НаборЗаписейБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписейБУ.Отбор.Регистратор.Установить(Ссылка);
    НаборЗаписейБУ.Прочитать();

А потом пытаюсь заменить в этом наборе СчетДт на мои новые счета:

СтрСчет = ТЗ.Найти(Рез.НоменклатурнаяГруппа);
        СтрБУ.СчетДт = СтрСчет.НовыйСчет;

Но в СчетДт ничего не попадает, там пусто. Отчего так, подскажите пожалуйста?
7 Запасной
 
17.04.20
07:49
Разные типы, как минимум
8 LittlePumpkin
 
17.04.20
07:51
Тогда нужно колонке НовыйСчет присвоить то же значение, что и у счетаДт? Подскажите как это реализовать?
9 LittlePumpkin
 
17.04.20
07:52
У СчетаДт тип ПланСчетовСсылка.Хозрасчетный. Могу ли я присвоить такое же значение колонке НовыйСчет?
10 Запасной
 
17.04.20
07:52
Действуй
11 LittlePumpkin
 
17.04.20
07:53
Присвоить тип, а не значение, оговариваюсь. Я еще новичок и не представляю как это сделать. Подскажите пожалуйста, какими конструкциями это реализуется?
12 LittlePumpkin
 
17.04.20
07:57
Попыталась задать вот так: ТЗ.Колонки.Добавить("НовыйСчет", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));

Не помогло(
13 Запасной
 
17.04.20
07:59
Да не надо тебе этого, пиши в колонку правильные данные и всё
14 hhhh
 
17.04.20
08:00
(11) а НаборЗаписейБУ.Записать()    сделала?
15 LittlePumpkin
 
17.04.20
08:01
То есть писать новые данные прямо в колонку изначального счета? Не добавляя новую колонку?
16 LittlePumpkin
 
17.04.20
08:02
Конечно, набор записей записываю, но делаю это в самом конце, после всех присваиваний.
17 LittlePumpkin
 
17.04.20
08:06
При попытке писать в колонку Счет, она в итоге остается пустой. Что я делаю не так?(
18 hhhh
 
17.04.20
08:32
(17) ты программу покажи. На словах ничего не понятно
19 SerF_2011
 
17.04.20
08:37
(16) после всех присваиваний?
НаборЗаписейБУ.Записать() должно быть столько же, сколько и НаборЗаписейБУ.Прочитать()
20 LittlePumpkin
 
17.04.20
09:28
Разобралась. При необходимости писать в колонку Счет, надо указывать Счет9001_04Ссылка, а не Счет9002_04Объект.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс