Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 03:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Заполнить табличную часть обработки.  (Прочитано 1772 раз)

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

Оффлайн mila1231

  • ***
  • Сообщений: 159
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
Что не так?
Задача создать обработку, которая будет выдавать список  номеров  приборов, а дальше если номер будет выделен, то по нажатию кнопки создавать документ.
Есть обработка у неё два реквизита НачалоПериода  КонецПериода
есть табличная часть приборы_принятые
здесь один реквизит  номер_прибора
Данные для заполнения берутся из РеестраСведений
До создания документа не дошла ещё, встала на самом начале, не выводится список в табличную часть.
Как делать откровенно не знаю, поэтому по средствам гугла.
ДокОбъект = Приборы_принятые;		
Запрос = новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              | РеестрДвиженияПрибора.Статус_регистр,
              | РеестрДвиженияПрибора.Дата_регистр,
              | РеестрДвиженияПрибора.Номер_прибора_регистр
              |ИЗ
              | РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
  |ГДЕ
          | РеестрДвиженияПрибора.Дата_регистр МЕЖДУ &НачалоПериода И &КонецПериода";
 
     Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
     Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));    
ВыборкаДанные = Запрос.Выполнить().Выбрать();
Началопериода= ТекущаяДата();
Конецпериода=ТекущаяДата();
     Приборы_принятые.Очистить();
Пока выборкаДанные.Следующий() Цикл
Если выборкаДанные.Статус_регистр = "Принят" тогда
            Стр = Приборы_принятые.Добавить();
          Стр.Номер_прибора = ВыборкаДанные.Номер_прибора_регистр;
         конецЕсли;         
        КонецЦикла;
Итог ничего, я так думаю, может это должно быть как массив...
Зы: помидорами не кидать , по возможности помочь, если отправите читать, то хотя бы ссылку дайте, где и что.


Оффлайн Gunner

  • ****
  • Сообщений: 291
  • РЕПУТАЦИЯ: 23
  • КПД: 8%
  • Регистрация: 2011-08-07
  • Сайт: 
  • Профессия: Программист 1С
До выполнения запроса начало периода и конец периода какие значения принимают? Думаю, что пустые, т.е. 01.01.0001, т.к. после выполнения запроса им присваивается значение текущей даты

Оффлайн mila1231

  • ***
  • Сообщений: 159
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
До выполнения запроса начало периода и конец периода какие значения принимают? Думаю, что пустые, т.е. 01.01.0001, т.к. после выполнения запроса им присваивается значение текущей даты
Упс, это я удалить забыла, просто начала  пробовать.
Просто НачалоПериода и КонецПериода - это поле ввода с типом Дата, т.е по сути я счас убрала строки с текущейДатой, но всё равно ничего не выводит, при этом если выборку по дате убираю, то заполняется только номер строки, но это наверно уже второй вопрос.

Оффлайн kavay

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 1
  • КПД: 25%
  • Регистрация: 2015-10-30
  • Сайт: 
  • Профессия: Ученик 1С
Попробуйте так:
ДокОбъект = Приборы_принятые;        
Началопериода= ТекущаяДата();
Конецпериода=ТекущаяДата();
Запрос = новый Запрос;       
Запрос.Текст ="ВЫБРАТЬ
              |    РеестрДвиженияПрибора.Статус_регистр,
              |    РеестрДвиженияПрибора.Дата_регистр,
              |    РеестрДвиженияПрибора.Номер_прибора_регистр
              |ИЗ
              |    РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
              |ГДЕ
              |    РеестрДвиженияПрибора.Дата_регистр МЕЖДУ &НачалоПериода И &КонецПериода";
             
     Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
     Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));                                                             
     ВыборкаДанные = Запрос.Выполнить().Выбрать();
     Объект.Приборы_принятые.Очистить();
     Пока выборкаДанные.Следующий() Цикл
         Если выборкаДанные.Статус_регистр = "Принят" тогда
            Стр = Объект.Приборы_принятые.Добавить();
          Стр.Номер_прибора = ВыборкаДанные.Номер_прибора_регистр;
         конецЕсли;         
        КонецЦикла;
Добавил Объект. к реквизиту Приборы_принятые и перенёс присвоения реквизитов для параметров с датами, остальное правильно вроде, проверил у меня ТЧ заполняется и выводится.

Оффлайн mila1231

  • ***
  • Сообщений: 159
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С

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

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

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





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

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

Оффлайн Gunner

  • ****
  • Сообщений: 291
  • РЕПУТАЦИЯ: 23
  • КПД: 8%
  • Регистрация: 2011-08-07
  • Сайт: 
  • Профессия: Программист 1С
Посмотрите в отладке заполняется ли ТЧ. Если она заполняется, то тогда на форме не отображается значение. Возможная причина: поле "Номер прибора" не связано с данными

Оффлайн kavay

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 1
  • КПД: 25%
  • Регистрация: 2015-10-30
  • Сайт: 
  • Профессия: Ученик 1С
У вас обычная форма, у я проверял на управляемой, поэтому Объект добавил, не сообразил сразу.
Проверил на обычной, тоже всё работает, вот простейший рабочий код совершенно подобный вашему.
Внизу в окне сообщений у вас данные которые должны попадать в колонку табличной части ? Если да то выбирается всё верно. Может у вас элемент ТабличноеПоле на форме не связан с Табличной частью через свойство Данные ?
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| Приборы_принятые.ПринятыйПрибор
|ИЗ
| РегистрСведений.Приборы_принятые КАК Приборы_принятые";
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

Оффлайн mila1231

  • ***
  • Сообщений: 159
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
Ребят огромное вам спасибо, а то я уже голову просто сломала, действительно дело было в самом элементарном)))у меня просто почему-то , сама даже не знаю тип был привязан к документу, счас поставила строку и всё ура ура)))


Теги:
 

Часть четвертая: переход на «1С» версии «3.0». Где в программе находятся «Параметры учета»? Алгоритм настройки кадрового учета в новой версии программы «1С»

Автор 1cwikiРаздел Зарплата и управление персоналом

Ответов: 0
Просмотров: 3988
Последний ответ 20 Мар 2015, 12:58
от 1cwiki
Восстановление "убитой" обработки

Автор SuraevРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 6092
Последний ответ 31 Май 2011, 14:27
от Slin
табличная часть, реквизит "сумма"

Автор otabekРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2472
Последний ответ 01 Мар 2014, 22:27
от DmitriyF
часть уплаченного НДФЛ не попадает в справку 2-ндфл

Автор КаринаСРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1681
Последний ответ 30 Янв 2015, 02:08
от MuI_I_Ika
Уменьшение закупочной цены-уменьшение прибыли на часть товара

Автор AinaРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 3566
Последний ответ 13 Дек 2012, 18:46
от Aina

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
50 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 126
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal