8.х изменение данных в справочнике через табличную часть

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

  1. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Перед открытием формы ТабличноеПоле заполняется из запроса:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ФильмыРасписания.Фильм,
    |	ФильмыРасписания.Время КАК Время
    |ИЗ
    |	Справочник.ФильмыРасписания КАК ФильмыРасписания
    |ГДЕ
    |	ФильмыРасписания.Владелец = &Владелец
    |
    |УПОРЯДОЧИТЬ ПО
    |	Время";
    Запрос.УстановитьПараметр("Владелец",СправочникОбъект.Ссылка);
    Элементыформы.ТабПолеФильмы.Значение = Запрос.Выполнить().Выгрузить();
    Элементыформы.ТабПолеФильмы.СоздатьКолонки();
    
    
    Заполняться-то оно заполняется, но вот если внести изменения в записи через это табличное поле, то они не сохраняются. Можно ли это как-нибудь сделать? Может надо еще код записи выводить? или тип значения и данные поменять? сейчас стоит Данные = ТабПолеФильмы И типЗначения = ТаблицаЗначений
  2. TopicStarter Overlay
    cucumber
    Offline

    cucumber

    Регистрация:
    25 авг 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Пока сделано так:

    Код:
    Для Каждого ТекСтрока Из ТабПолеФильмы Цикл
    Если ТекСтрока.Ссылка = Неопределено Тогда
    НовФильмРасписания = Справочники.ФильмыРасписания.СоздатьЭлемент();   			
    НовФильмРасписания.Владелец = СправочникОбъект.Ссылка;
    НовФильмРасписания.Наименование = Строка(Формат(Элементыформы.ДействуетС, "ДЛФ=Д")) + " - " + Строка(Формат(КонецДня(ЭлементыФормы.ДействуетДо), "ДЛФ=Д")) + " Зал: " + Зал;
    НовФильмРасписания.Время = Элементыформы.ДействуетС;
    НовФильмРасписания.Фильм = КонецДня(ЭлементыФормы.ДействуетДо);
    НовФильмРасписания.Записать();
    Иначе
    ТекФильмРасписания = ТекСтрока.Ссылка.ПолучитьОбъект();
    ТекФильмРасписания.Время = ТекСтрока.Время;
    ТекФильмРасписания.Фильм = ТекСтрока.Фильм;
    ТекФильмРасписания.Записать();
    КонецЕсли;
    КонецЦикла;
    
    Может есть более простой путь?
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вы создали некую таблицу в памяти - откуда система должна понять, что и куда писать?
    Поэтому все пишем ручками :)

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