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

Заполнить табличную часть обработки.

Автор mila1231, 18 ноя 2015, 07:46

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

mila1231

Что не так?
Задача создать обработку, которая будет выдавать список  номеров  приборов, а дальше если номер будет выделен, то по нажатию кнопки создавать документ.
Есть обработка у неё два реквизита НачалоПериода  КонецПериода
есть табличная часть приборы_принятые
здесь один реквизит  номер_прибора
Данные для заполнения берутся из РеестраСведений
До создания документа не дошла ещё, встала на самом начале, не выводится список в табличную часть.
Как делать откровенно не знаю, поэтому по средствам гугла.

ДокОбъект = Приборы_принятые;
Запрос = новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              | РеестрДвиженияПрибора.Статус_регистр,
              | РеестрДвиженияПрибора.Дата_регистр,
              | РеестрДвиженияПрибора.Номер_прибора_регистр
              |ИЗ
              | РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
  |ГДЕ
          | РеестрДвиженияПрибора.Дата_регистр МЕЖДУ &НачалоПериода И &КонецПериода";
 
     Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
     Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));    
ВыборкаДанные = Запрос.Выполнить().Выбрать();
Началопериода= ТекущаяДата();
Конецпериода=ТекущаяДата();
     Приборы_принятые.Очистить();
Пока выборкаДанные.Следующий() Цикл
Если выборкаДанные.Статус_регистр = "Принят" тогда
            Стр = Приборы_принятые.Добавить();
          Стр.Номер_прибора = ВыборкаДанные.Номер_прибора_регистр;
         конецЕсли;         
        КонецЦикла;

Итог ничего, я так думаю, может это должно быть как массив...
Зы: помидорами не кидать , по возможности помочь, если отправите читать, то хотя бы ссылку дайте, где и что.

Gunner

До выполнения запроса начало периода и конец периода какие значения принимают? Думаю, что пустые, т.е. 01.01.0001, т.к. после выполнения запроса им присваивается значение текущей даты

mila1231

Цитата: Gunner от 18 ноя 2015, 08:20
До выполнения запроса начало периода и конец периода какие значения принимают? Думаю, что пустые, т.е. 01.01.0001, т.к. после выполнения запроса им присваивается значение текущей даты
Упс, это я удалить забыла, просто начала  пробовать.
Просто НачалоПериода и КонецПериода - это поле ввода с типом Дата, т.е по сути я счас убрала строки с текущейДатой, но всё равно ничего не выводит, при этом если выборку по дате убираю, то заполняется только номер строки, но это наверно уже второй вопрос.

kavay

Попробуйте так:

ДокОбъект = Приборы_принятые;       
Началопериода= ТекущаяДата();
Конецпериода=ТекущаяДата();
Запрос = новый Запрос;       
Запрос.Текст ="ВЫБРАТЬ
              |    РеестрДвиженияПрибора.Статус_регистр,
              |    РеестрДвиженияПрибора.Дата_регистр,
              |    РеестрДвиженияПрибора.Номер_прибора_регистр
              |ИЗ
              |    РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
              |ГДЕ
              |    РеестрДвиженияПрибора.Дата_регистр МЕЖДУ &НачалоПериода И &КонецПериода";
             
     Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
     Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));                                                             
     ВыборкаДанные = Запрос.Выполнить().Выбрать();
     Объект.Приборы_принятые.Очистить();
     Пока выборкаДанные.Следующий() Цикл
         Если выборкаДанные.Статус_регистр = "Принят" тогда
            Стр = Объект.Приборы_принятые.Добавить();
          Стр.Номер_прибора = ВыборкаДанные.Номер_прибора_регистр;
         конецЕсли;         
        КонецЦикла;

Добавил Объект. к реквизиту Приборы_принятые и перенёс присвоения реквизитов для параметров с датами, остальное правильно вроде, проверил у меня ТЧ заполняется и выводится.

mila1231


Цитировать
Добавил Объект. к реквизиту Приборы_принятые и перенёс присвоения реквизитов для параметров с датами, остальное правильно вроде, проверил у меня ТЧ заполняется и выводится.

У меня ошибка
Обработка.Приборы_на_поверку.Форма.Форма.Форма(52,6)}: Переменная не определена (Объект)
     <<?>>Объект.Приборы_принятые.Очистить(); (Проверка: Толстый клиент (обычное приложение))
{Обработка.Приборы_на_поверку.Форма.Форма.Форма(55,19)}: Переменная не определена (Объект)
            Стр = <<?>>Объект.Приборы_принятые.Добавить(); (Проверка: Толстый клиент (обычное приложение))

Приборы_принятые, это табличная часть... во вложение структура обработки... Может, конечно я что-то не то делаю.





Добавлено: 18 ноя 2015, 10:51


и выборка точно делается, счас просто слово Объект убрала... и добавила сообщить...но вот в строки не выводит... не могу понять причину((

Gunner

Посмотрите в отладке заполняется ли ТЧ. Если она заполняется, то тогда на форме не отображается значение. Возможная причина: поле "Номер прибора" не связано с данными

kavay

У вас обычная форма, у я проверял на управляемой, поэтому Объект добавил, не сообразил сразу.
Проверил на обычной, тоже всё работает, вот простейший рабочий код совершенно подобный вашему.
Внизу в окне сообщений у вас данные которые должны попадать в колонку табличной части ? Если да то выбирается всё верно. Может у вас элемент ТабличноеПоле на форме не связан с Табличной частью через свойство Данные ?

Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| Приборы_принятые.ПринятыйПрибор
|ИЗ
| РегистрСведений.Приборы_принятые КАК Приборы_принятые";
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

приборы_принятые.Очистить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.ПринятыйПрибор);
Стр = приборы_принятые.Добавить();
Стр.Номер_прибора = ВыборкаДетальныеЗаписи.ПринятыйПрибор;
КонецЦикла;
КонецПроцедуры

mila1231

Ребят огромное вам спасибо, а то я уже голову просто сломала, действительно дело было в самом элементарном)))у меня просто почему-то , сама даже не знаю тип был привязан к документу, счас поставила строку и всё ура ура)))

Теги:

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

Рейтинг@Mail.ru

Поиск