8.х Как программно изменить количество ном-ры в табличной части формы

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

  1. TopicStarter Overlay
    Dmitryp
    Offline

    Dmitryp

    Регистрация:
    11 апр 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Мне необходимо разделить документ "Реализация товаров и услуг" пополам!
    С созданием нового документа и табличной части с необходимым количеством проблем нет. Но вот как в разделяемой накладной изменить количество?
    Возникает ошибка "Поле объекта недоступно для записи (Количество)"
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Не очень понятно как вы его делить собрались.
    Если создавать еще один документ и копировать в него табличную часть и менять в двух документах количество - это один подход, второй вариант - табличную часть задвоить и поменять количество. В любом случае разъясните - что конкретно вы делите пополам!
  3. TopicStarter Overlay
    Dmitryp
    Offline

    Dmitryp

    Регистрация:
    11 апр 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Вот именно так! Создал документ и построчно в цикле скопировал туда табличную часть с нужным мне количеством!
    А вот с исходным документом проблема! Поле количество закрыто для изменения!
    Как это обойти бы?
  4. reloc
    Offline

    reloc

    Регистрация:
    30 окт 2008
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Может сначала надо было получить ссылку на объект?

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

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Конечно хорошо бы код от вас получить, ну ладно
    Код:
    // Создаем новый док и копируем
    Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    // Ну там заполняем и копируем
    Док.Записать();
    
    // Текущий документ
    Для Каждого Стр Из ЭтотОбъект.Товары Цикл
    Стр.Количество = Стр.Количество/2;
    КонецЦикла;
    ЭтотОбъект.Записать();
    
    
    
    Обратим внимание, что перебираем именно строки этого объекта.
    Мне кажется, что reloc совершенно прав. Просто объект скорее всего ен надо получать - он у вас и так есть.

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