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

Автор Тема: Автоматическое заполнение табличной части документа  (Прочитано 10029 раз)

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

Оффлайн Gregory78

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет! Подскажите: как программным способом заполнить табличную часть документа данными из справочника "Сотрудники"?

Я сделал так: создал в модуле формы документа серверную функцию, которая получает запросом список сотрудников из справочника, и результат помещает в массив. Проверил: работает, нужные данные в массиве появляются.

Затем повесил на форму событие "При открытии". Перебираю массив циклом, и... дальше не хватает знаний.
Каким образом мне обратиться к ТЧ "СписокСотрудников"? Как к "Элементы.СписокСотрудников" или как "Объект.СписокСотрудников" (в последнем случае процедуру заменить на серверную)? Пытался через синтакс-помощник найти подходящие методы, но пока безрезультатно.

Была еще идея вставить вместо ТЧ динамический список - это получается легко... но мне нужны рядом с фамилией каждого сотрудника еще и реквизит типа "булево", редактируемый пользователем. Вот с этим тоже все сложно. (

В общем, цель такая: при открытии формы документа табличная часть должна автоматически заполниться списком сотрудников (циклом - создается строка, в реквизит "ФИО" вставляются данные из массива, данные записываются), чтобы пользователю осталось только выставить галочки на булевых реквизитах.
Работаю в 1С 8.2.

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
после выполнения запроса у вас будет ТаблицаЗначений. Далее необходимо получить документ (или создать), который будете заполнять. и
Для каждого стр из ТЗ Цикл
НоваяСтрока = Документ.ТЧ.Добавить();
НоваяСтрока.ФИО = стр.ФИО;
и т.д.

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
&НаКлиенте
Процедура ПриОткрытии(Отказ)

ЗаполнитьТабличнуюЧасть();

КонецПроцедуры

&НаСервере
Процедура ЗаполнитьТабличнуюЧасть()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Наименование
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";

РезультатЗапроса = Запрос.Выполнить().Выгрузить()

Для каждого Стр из РезультатЗапроса Цикл
НоваяСтрока = Объект.ТабличнаячЧасть.Добавить();
НоваяСтрока.ФИО = Стр.Наименование;
КонецЦикла
КонецПроцедуры
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн Gregory78

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо за подробный ответ! Но почему-то не все тут срабатывает. Создаются строки (их количество соответствует числу сотрудников), но поля остаются пустыми. Проверил с точкой останова, вроде все должно быть правильно. Жму Shift+F9 (вычислить выражение), получаю:
Стр.Наименование - видна фамилия сотрудника, тип - строка;
НоваяСтрока - ДанныеФормыЭлементКоллекции;
НоваяСтрока.Сотрудник - СправочникСсылка.Сотрудники

Но хоть убей, не видны эти сотрудники в форме!
Ковырялся еще сам, поместил весь код в одну процедуру "При создании на сервере". Попробовал использовать метод "Выбрать" вместо "Выгрузить", изменил обход результата запроса:

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

Но в итоге суть та же, все это как мертвому припарка. Последняя строка "НоваяСтрока.Сотрудник = Результат.Наименование;" не срабатывает. У кого-нибудь есть еще соображения?

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Спасибо за подробный ответ! Но почему-то не все тут срабатывает. Создаются строки (их количество соответствует числу сотрудников), но поля остаются пустыми. Проверил с точкой останова, вроде все должно быть правильно. Жму Shift+F9 (вычислить выражение), получаю:
Стр.Наименование - видна фамилия сотрудника, тип - строка;
НоваяСтрока - ДанныеФормыЭлементКоллекции;
НоваяСтрока.Сотрудник - СправочникСсылка.Сотрудники

Но хоть убей, не видны эти сотрудники в форме!
Ковырялся еще сам, поместил весь код в одну процедуру "При создании на сервере". Попробовал использовать метод "Выбрать" вместо "Выгрузить", изменил обход результата запроса:

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

Но в итоге суть та же, все это как мертвому припарка. Последняя строка "НоваяСтрока.Сотрудник = Результат.Наименование;" не срабатывает. У кого-нибудь есть еще соображения?

Что будет, если ты попытаешься записать строку "абв" в переменную числового типа?
Вот и подумай, почему у тебя строка не записывается в переменную ссылочного типа.

Оффлайн Gregory78

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Каким образом тогда получить ссылочные значения? Получить строку и каким-то образом выполнить поиск по справочнику, а полученный результат поместить в переменную?

Оффлайн roman_se.kz

  • *
  • Сообщений: 28
  • РЕПУТАЦИЯ: 3
  • КПД: 11%
  • Регистрация: 2014-08-19
  • Сайт: 
  • Профессия: Программист 1С
А в Табличной Части это поле, куда вы записываете это ссылка на справочник Сотрудники? Или строковое?

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1303
  • РЕПУТАЦИЯ: 284
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Каким образом тогда получить ссылочные значения? Получить строку и каким-то образом выполнить поиск по справочнику, а полученный результат поместить в переменную?

Текст запроса то какой? Поди в запросе вместо ссылки наименование получаете

Оффлайн Gregory78

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
НоваяСтрока.Сотрудник -
СправочникСсылка.Сотрудники
Стало быть, не строка, а ссылка.
Добавлено: 20 Авг 2014, 07:47


[/quote]
Текст запроса то какой? Поди в запросе вместо ссылки наименование получаете
[/quote]

Да, запросом получаю наименование . Так! Может быть, вместо наименования выбрать ссылку?

ВЫБРАТЬ
Сотрудники.Ссылка
ИЗ
Справочник.Сотрудники КАК Сотрудники
???
Надо будет попробовать.

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1303
  • РЕПУТАЦИЯ: 284
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Да, запросом получаю наименование . Так! Может быть, вместо наименования выбрать ссылку?
Если в табличной части ссылка, то и в запросе ссылку выбирать надо



Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

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

Ответов: 1
Просмотров: 3879
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

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

Ответов: 4
Просмотров: 6767
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

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

Ответов: 1
Просмотров: 3783
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

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

Ответов: 14
Просмотров: 6233
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

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

Ответов: 1
Просмотров: 6477
Последний ответ 03 Фев 2012, 17:27
от Dinah

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
151 Сообщений
alex0402
109 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
51 Сообщений
LexaK
48 Сообщений
AsadRoman
27 Сообщений
SlimShady
22 Сообщений
друган
21 Сообщений
alexandr_ll
19 Сообщений
Константин5825
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal