8.х Запись реквизита субконто

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем AdAmAnt, 20 май 2010.

  1. TopicStarter Overlay
    AdAmAnt
    Offline

    AdAmAnt

    Регистрация:
    20 май 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Сначала приведу код, потом объясню по порядку.

    Код:
    Для каждого КлючИЗначение Из ТекущаяСтрока Цикл
    
    Если Не ОбъектНайден или Колонки[КлючИЗначение.Ключ].Пометка  Тогда
    
    Попытка
    Если Найти(КлючИЗначение.Ключ, "Субконто") > 0 Тогда
    Если Строка(ТипЗнч(КлючИЗначение.Значение)) <> "Неопределено" Тогда
    Попытка
    Объект[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
    Исключение
    Продолжить;
    КонецПопытки;
    КонецЕсли;
    Иначе
    Объект[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
    КонецЕсли;	 
    Исключение
    мСообщитьОбОшибке("Ошибка при установки значения реквизита """ + КлючИЗначение.Ключ + "" + ОписаниеОшибки());
    Отказ = Истина;
    Прервать;
    КонецПопытки;
    КонецЕсли;
    КонецЦикла;
    
    Я пытаюсь загрузить строку со значениями в документ Корректировка записей регистра в "ТабличноеПолеДвиженияБюджетирование", как пример.
    Здесь у поля "СубконтоДТ" установлена связь по типу с полем "СчетДТ". СчетДТ записывается перед тем, как цикл доходит до СубконтоДТ, но при попытке записи последнего вылетает отказ "Не доступен для записи" или что-то подобное. Т. е. по-моему, надо обновить строку ТабличногоПоля документа. Как это сделать? Или если знаете что ошибка в другом, помогите, пожалуйста.

    ТекущаяСтрока - это структура, содержащая значения загружаемых реквизитов.

    Объект - это новая строка табличного поля, в которое записываем реквизиты.
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Тут вылетает? Ну так смотрите, что вы делаете: пусть КлючИЗначение.Ключ = "Товары". Таким образом, ваша строчка примет вид:
    Код:
    Объект.Товары = КлючИЗначение.Значение;
    
    Но в табличной части как минимум нужно обратиться к субконто. То есть
    Код:
    Объект.СубконтоДт[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
    
    Код написан без 1С, то есть с ошибками. Но направление вам задано.
  3. TopicStarter Overlay
    AdAmAnt
    Offline

    AdAmAnt

    Регистрация:
    20 май 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    X under, Спасибо за помощь, но Вы не правы. У меня в полях КлючИЗначение.Ключ содержатся имена колонок, а не представления или какие-то левые названия. С проблемой разобрался.

    Все решается процедурой УстановитьСубконто, которая есть в типовой УПП.

Поделиться этой страницей