Таблицы на управляемых формах: создание, расширение, управление.

Публикация № 574802

Разработка - Работа с интерфейсом

Управляемая форма реквизиты таблица значений

Как вывести результат запроса в таблицу на управляемую форму, ведь здесь нет метода "СоздатьКолонки()"? Как добавить поле ввода в табличную часть документа, если нет желания менять документ? Разбираемся...

Добрый день!

Сегодня предлагаю дамам и господам из Парижу разобраться с тем, как программно управлять управляемыми формами. Как создать таблицу значений, как создать колонки, как ее заполнить, как вывести ее на форму, как разрешить или запретить изменение, как расширить колонки уже имеющейся на форме таблицы... Ну,

поехали!

Итак, унас есть форма и запрос, результат которого выгружен в таблицу. Например, так:

Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Банки");
Таблица = Запрос.Выполнить().Выгрузить();

Выведем таблицу на управляемую форму

Наша основная задача номер РАЗ - вывести результат запроса на управляемую форму.

Для этого нам нужно:

  1. Создать реквизит типа "ТаблицаЗначений".
  2. Создать реквизиты с типом значения, соответствующим типу колонки таблицы, для каждой колонки, подчиненные таблице.
  3. Создать элемент формы типа "ТаблицаФормы" для таблицы.
  4. Создать элементы формы для колонок типа "ПолеФормы".

Таким образом код у нас будет такой:

	// добавим таблицу: сначала саму таблицу, потом колонку.
	Реквизиты = Новый Массив;
	Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
	Для Каждого Ст ИЗ Таблица.Колонки Цикл
		Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));
	КонецЦикла;

	// добавим реквизиты на форму
	ИзменитьРеквизиты(Реквизиты);

	// добавим элементы формы
	Таб = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"));
	Таб.ПутьКДанным = "ТаблицаНаФорме";

	// запретим менять положение строк и сами строки, отключим командную панель
	Таб.ИзменятьСоставСтрок = Ложь;
	Таб.ИзменятьПорядокСтрок = Ложь;
	Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

	Для Каждого Ст ИЗ Таблица.Колонки Цикл
		Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб);
		Рек.Вид = ВидПоляФормы.ПолеНадписи;
		Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя;
		Рек.Заголовок = Ст.Имя;
	КонецЦикла;

	// заполним таблицу
	ЗначениеВРеквизитФормы(Таблица, "ТаблицаНаФорме");

Здесь мы создаем реквизиты, содержащие таблицу и колонки таблицы. Далее создаем элементы и прописываем для них путь к реквизитам формы. Т.е. у нас всегда создается и реквизит формы, который хранит значение, и элемент формы, который это значение отображает. В этом вся суть. При этом если Вы хотите создать группу формы, то реквизит формы вам не нужен - достаточно создать элемент формы типа "ГруппаФормы", после чего в поле "Вид" прописать соответствующтий вид элемента (Группа, Закладка, ...).

Данный код выводит на управляемую форму результат запроса. Но если вдруг в результате запроса у Вас будут элементы, типы которых не могут быть выведены на форму, то 1С будет ругаться. К таким элементам относятся хранилища значений, уникальные идентификаторы и, на сколько я знаю, другие таблицы значений (т.е. при выборке табличных частей у нас возникнут проблемы). Это нужно учитывать при создании реквизитов. При этом, если реквизит таблицы имеет тип "ТаблицаЗначений", то для его тоже нужно будет создать колонки. Также следует иметь ввиду, что имена элементов формы должны быть уникальными, при этом имена реквизитов должны быть уникальны внутри своих родителей (т.е. может существовать две разные таблицы с одинаковыми наименованиями колонок, но в пределах одной таблицы имена колонок должны отличаться).

Добавим колонку в таблицу документа

Теперь давайте посмотрим, как можно расширить уже имеющуюся таблицу формы.

Допустим, мы хотим добавить колонку в таблицу выданных авансов авансового отчета как-нибудь так:

Для этого просто напишем в процедуре ПриСозданииНаСервере такой вот код:

	// добавим реквизит
	МассивРеквизитов = Новый Массив;
	МассивРеквизитов.Добавить(Новый РеквизитФормы("Колонка1", Новый ОписаниеТипов("Строка"), "Объект.ВыданныеАвансы", "Колонка 1", Ложь));
	ИзменитьРеквизиты( МассивРеквизитов );
	
	Элт = Элементы.Добавить("Колонка1", Тип("ПолеФормы"), Элементы.ВыданныеАвансы);
	Элт.Вид = ВидПоляФормы.ПолеВвода;
	Элт.ПутьКДанным = "Объект.ВыданныеАвансы.Колонка1"; 

Следует, однако, иметь ввиду, что заполнять данную колонку придется при каждом открытии документа, а данные для нее сохранять в отдельном хранилище, например, регистре сведений с документом и номером строки в качестве измернеий, и значением в ресурсе.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mars207 27 11.01.17 13:31 Сейчас в теме
Я бы еще добавил динамическое изменение таблицы в процессе работы. Имею в виду проверку наличия реквизита и элемента, возможность удаления лишних колонок. Например, показать движения по месяцам в зависимости от указанного количества месяцев. А то как-то жиденько…
Lena272; kraynev-navi; +2 Ответить
2. starik-2005 2261 11.01.17 14:10 Сейчас в теме
(1) справедливо, но задача была показать, как в принципе это делать. А уж обращать внимание на второй параметр метода "ИзменитьРеквизиты()" - это дело для самостоятельного изучения. Но, как показала практика, лучше полностью сносить таблицу и создавать новую, чем заморачиваться изменениями колонок - пользы чуть, а геморроя - масса.
3. kraynev-navi 483 12.01.17 13:39 Сейчас в теме
поддерживаю (1). Приведенный код обильно присутствует на всем известных форумах.
Если бы сделали всеобъемлющее руководство, привели нюансы с какими багами предстоит встретиться на разных платформах, про удаление и т.д.
А так... В чем новость?
4. starik-2005 2261 12.01.17 15:19 Сейчас в теме
(3) по поводу "обильности" что-то не замечал, а по поводу изменений - это лишь одна из манипуляций с данными формы. Я в последнее время отказался от создания на форме таблиц - формирую их динамически. Для того, чтобы знать, какие элементы нужно удалить, просто делаю на форме список значений, в который добавляю созданные реквизиты и связанные с ними элементы (идентификаторы). Дальше при необходимости просто удаляю все созданные элементы/реквизиты и создаю заново. Ничего тут "такого" в плане нюансов нет.
5. fomix 28 13.01.17 10:22 Сейчас в теме
Можете пояснить на словах "просто делаю на форме список значений, в который добавляю созданные реквизиты и связанные с ними элементы (идентификаторы). Дальше при необходимости просто удаляю все созданные элементы/реквизиты и создаю заново.".
Желательно с кодом. Заранее спасибо!
6. starik-2005 2261 13.01.17 11:59 Сейчас в теме
(5) а что конкретно непонятно? В вышеуказанный код добавляете "СписокЗанченийСРеквизитами.Добавить(Колонка.Имя, Реквизит.Имя)", а перед этим можете вызвать функцию, которая пробежится по элементам списка, удалит элементы "Элементы.Удалить(Элементы.Найти(ЭлементСписка.Представление))", добавит в массив реквизитов для удаления имя реквизита (именно имя, а не реквизит) и вызовет функцию "ИзменитьРеквизиты(, УдаляемыеРеквизиты)". Все же просто.
7. fomix 28 17.01.17 14:04 Сейчас в теме
(6) Фигня получается, если делать как написали!
Зачем использовать конструкцию "ИзменитьРеквизиты(, УдаляемыеРеквизиты)", если выше элемент с формы уже удален строкой: "Элементы.Удалить(Элементы.Найти(ЭлементСписка.Представление))"?!
Тогда и "СписокЗначенийСРеквизитами" не нужен.
Может не так понял...
8. starik-2005 2261 17.01.17 16:37 Сейчас в теме
(7) понял действительно не так.Не стоит путать реквизиты формы и элементы формы. Через "Элементы.Удалить()" удаляется элемент формы, а через ИзменитьРеквизиты добавляются и удаляются... что?.. правильно - реквизиты формы, которые ни разу не элементы формы.
9. fomix 28 28.01.17 11:36 Сейчас в теме
(8) Получается, что список удаляемых Колонок нужно готовить во время или после создания реквизитов (таблицы и колонок), но до добавления элементов формы. Т.е. подставлять в вашем коде так:

// добавим реквизиты на форму
ИзменитьРеквизиты(Реквизиты, _УдаляемыеРеквизиты_); !?
10. starik-2005 2261 30.01.17 22:35 Сейчас в теме
(9) тут как раз проблема одна: метод "ИзменитьРеквизиты" в первом параметре принимает созданные реквизиты (массив), чтобы они "приаттачились" к форме (не совсем, конечно, ясно, зачем 1С делает так - но это их дело), а вот во втором параметре - массив имен реквизитов, которые нужно удалить. Объясняют они это просто - если нужно поменять что-то на форме в плане реквизитов, то удаляем и добавляем одной командой. При том сначала реквизиты удаляются, потом добавляются (на сколько я помню). Но если в новых реквизитах есть реквизит с именем старого? При создании нового реквизита уже произойдет обломс - реквизит не создастся. Поэтому проще гораздо сначала удалить все реквизиты (просто дернув метод с массивом имен ранее созданных реквизитов, которые были сохранены в списке значений, например), потом удаляем все элементы формы (колонки нашей ТЗ), потом создаем новые реквизиты, добавляем их в список значений, потом создаем элементы формы (колонки нашей новой ТЗ). Так гораздо проще и нет шансов наступить на грабли.
11. Yashazz 3637 10.02.17 13:55 Сейчас в теме
Я фигею. Стопицотая публикация на тему, которую можно уже смотреть в БСП и таскать оттуда; которую давно разжевали в методичках и на куче ресурсов. Нет, ажиотаж зашкаливает... неужели столько новичков, которые эти азы не знают?

При эдаком тренде скоро Сообщить("Hello, world") будет "выбором экспертов" на ИС...

Ну и по сути.
1. Если задача "номер РАЗ" это вывести результаты - поместите на форму поле табличного документа и вывалите всё туда, хоть через построитель отчёта, хоть через СКД. Возни меньше на порядок.
2. Если уж упомянули про добавление подчинённых реквизитов к объектам "ДанныеФормыКоллекция", связанным с объектами БД, особенно с основным реквизитом формы, то уж распишите нормально, когда этот кэш сбрасывается и когда нет. И как сериализуется, и как передаётся, итд. А то, знаете, фраза "заполнять данную колонку придется при каждом открытии документа" это далеко-о-о не всё, что придётся делать)))
koks17v; v.l.; PolinkaKMS; nbeliaev; +4 Ответить
12. starik-2005 2261 11.02.17 20:50 Сейчас в теме
(11)
Ну и по сути.
1. Если задача "номер РАЗ" это вывести результаты - поместите на форму поле табличного документа и вывалите всё туда, хоть через построитель отчёта, хоть через СКД. Возни меньше на порядок.
2. Если уж упомянули про добавление подчинённых реквизитов к объектам "ДанныеФормыКоллекция", связанным с объектами БД, особенно с основным реквизитом формы, то уж распишите нормально, когда этот кэш сбрасывается и когда нет. И как сериализуется, и как передаётся, итд. А то, знаете, фраза "заполнять данную колонку придется при каждом открытии документа" это далеко-о-о не всё, что придётся делать)))

Ух-ты, мы вышли из бухты (с)
1. Да, возни меньше, но: а) не на порядок; б) СКД и построитель, конечно, посредством обработки событий табличного документа тоже редактируемы, но возни с этим, как Вы сами сказали, на тот самый порядок больше...
2. Всегда "этот кеш сбрасывается", ничего не надо сериализовать, с передачей и так кому надо - разберутся. А коли что не поняли - спросите, подскажем!

3. Да, азы - это главное. Войти в АТ где-то к тридцати пяти все хотят, а рыться в архивах лениво. Именно по этому (и я об том уже не раз говорил, возможно даже Вам лично) народ такие статьи крайне любит, а авторов холит и лелеет.

4. Завидуйте молча.
15. fomix 28 15.02.17 19:12 Сейчас в теме
(11) И откуда столько желчи?! По моему мнению здесь площадка для обмена опытом, а не закрытый клуб "знатоков" 1С.
Tolpinski; Team leader; dreamcreal; +3 Ответить
13. Yashazz 3637 13.02.17 18:01 Сейчас в теме
1. "редактируемы" в постановке задачи не было) Формулируйте точнее)
2. Теперь не понял - это статья с разжёвыванием для начинающих, или заметки профи? Или просто подлянка из серии "дальше сами разбирайтесь"?
3. Ага. Статьи из серии "hello world". Кстати, что такое "АТ"?
4. Я не завидую, я огорчён: спрос рождает предложение; такими темпами мы рискуем превратить ИС в песочницу для студентов, а на то и других ресурсов полно, вот хоть devtrain.

p.s. к сведению: в разных релизах 1С методы преобразования данных формы в значение и обратно очень по-разному обходятся с "добавленными" реквизитами, а уж КопироватьДанныеФормы чего творил, аж страшно было. Особенно 8.3.7 этим отличается.
14. starik-2005 2261 14.02.17 11:47 Сейчас в теме
1. Ну а зачем еще нужны ТЗ на форме?
2. Так не стесняйся - спроси прямо.
3. АТ - это типа АйТи. Я считал, что все это песенку слышали. Не?
4. Огорчайтесь молча - это ж должно было подавить Вашу ранимую психику. Поплакаться в жилетку - это полезно бывает.

пысы: преобразования данных формы в значения и обратно работают прямо у тех, у кого руки из нужного места растут. У иных могут быть проблемы - но это руки, хотя вина 1С тут тоже есть - не может толком обучить своих специалистов по платформе.
16. Yashazz 3637 18.02.17 19:43 Сейчас в теме
(14)
Огорчайтесь молча - это ж должно было подавить Вашу ранимую психику. Поплакаться в жилетку - это полезно бывает.
А вот переходить на личности не надо, за это можно и администрации ресурса пожаловаться на публичное оскорбление.

Поясню для понимающих: последний год я нахожу внятные ответы на свои вопросы где угодно, только не на ИС. Потому что ИС подобными публикациями всё более напоминает песочницу. Давайте я выложу, например, как динамически подключается условное оформление. Это ооочень сложная штука, конечно, и у большинства нет возможности глянуть реализацию БСП, так что будет бешеный спрос))) А потом через пару лет возникнет действительно серьёзный вопрос, и мне не придётся даже надеяться найти ответ на ИС. Так, что ли?

Ладно, оффтопим. А вот по теме публикации могу одно сказать: неполно, очень неполно и не совсем точно.
17. fomix 28 22.02.17 18:00 Сейчас в теме
(16) Давайте я выложу, например, как динамически подключается условное оформление. Это ооочень сложная штука, конечно, и у большинства нет возможности глянуть реализацию БСП, так что будет бешеный спрос)))

А ДАВАЙТЕ, МЫ ТОЛЬКО ЗА!
18. starik-2005 2261 23.02.17 12:09 Сейчас в теме
(16)
А вот по теме публикации могу одно сказать: неполно, очень неполно и не совсем точно.
Я всегда был за конкретику и конструктивную критику. Но то, что пишите Вы - это, увы и ах, нытье. Не нойте - и люди к Вам потянутся.

ЗЫ: Я уже давно не ищу что-либо на Инфостарте - я тут пишу. Некоторые простые вещи пишу потому, что у коллег возникают вопросы, я пытаюсь получить требуемый им результат и то, что у меня получается, выкладываю. Заметьте, я все, что мне надо, всегда в дебаггере нахожу, но не все же такие. Вот для тех, кому лень рыться в дебаггере, я и пишу свои статейки (последние две по крайней мере, остальные куда сложнее).

Если же посмотреть на Ваши статьи, то можно таких вот велосипедов кучу найти. И то, что у них рейтинг ниже плинтуса - это не моя вина. А есть и хорошие статьи - и это тоже не моя заслуга, так ведь? Ну вот и не нойте тут, а трудитесь.
19. Yashazz 3637 23.02.17 16:10 Сейчас в теме
(18)
Если же посмотреть на Ваши статьи, то можно таких вот велосипедов кучу найти.
Очередной некрасивый приёмчик. Очередной переход на личности. Подобная реакция характеризует Вас определённым образом, да.

Я сделал замечания по статье, а Вы (вероятно, не найдя достойного ответа) всё норовите на личность перейти. Ай-ай.

Если бы я гнался за рейтингом, я бы ещё лет семь назад вывалил бы кучу своих наработок и айда. Мои публикации в основном вынужденные, либо life-эмоции. Желай я рейтинга, я б их, наверное, в "лайф" не вносил, верно?))) Так это не статьи, это именно заметочки с личной позицией, навроде того срача про асинхронность или передачу клиент-сервер.

Я вообще не понимаю, зачем делать обучающие статьи, если есть ИТС, дев-трейн и тому подобное, я вообще не понимаю, с какой радости я должен делиться тем, что сам изучил и потратил своё время, с кем-то ещё. Чтобы пионеры халявили и не умели сами? Нетушки, мне потом такие сотрудники не будут нужны. Единственный раз, когда я сделал такую статью, грешен, это когда про XPath - сам себе антисклерозник соорудил, примерно как Трактор в своё время. Ну хотите, её тоже во вне-рейтинговую перекину?

Если человек сам, носом, ползком по шпалам, не пролопатит некую тему - раз, два, десять, - он так и останется "одинэснегом", а не программистом-разработчиком. Спрашивают тут на собеседовании у одного: как будете решать такую задачу. А он мне и говорит: "на инфостарте скачаю". Вот и нафига, спрашивается, поощрять лень?
21. starik-2005 2261 23.02.17 19:06 Сейчас в теме
(19)
Если человек сам, носом, ползком по шпалам, не пролопатит некую тему - раз, два, десять, - он так и останется "одинэснегом", а не программистом-разработчиком. Спрашивают тут на собеседовании у одного: как будете решать такую задачу. А он мне и говорит: "на инфостарте скачаю". Вот и нафига, спрашивается, поощрять лень?
Вот поэтому я и пишу обычно псевдокод, чтобы просто так не скопипастить было. Вы тоже так делаете? А кто тут ныл сначала о "дай код":
Если уж упомянули про добавление подчинённых реквизитов к объектам "ДанныеФормыКоллекция", связанным с объектами БД, особенно с основным реквизитом формы, то уж распишите нормально, когда этот кэш сбрасывается и когда нет. И как сериализуется, и как передаётся, итд. А то, знаете, фраза "заполнять данную колонку придется при каждом открытии документа" это далеко-о-о не всё, что придётся делать)))
а потом сетовал о песочнице:
Я не завидую, я огорчён: спрос рождает предложение; такими темпами мы рискуем превратить ИС в песочницу для студентов, а на то и других ресурсов полно, вот хоть devtrain.

Вы уж определитесь, что хотите.
20. Yashazz 3637 23.02.17 16:26 Сейчас в теме
Собственно, потому у таких публикаций и столь высокий рейтинг, что это позволяет делать бездумный копипаст и вообще поменьше напрягаться. И мне не кажется, что поощрять подобный подход - правильно.
22. softberry 2 10.12.18 05:56 Сейчас в теме
Автору спасибо! Сделал немного более универсально. Выходила ошибка при добавлении более одной таблицы на форму. Поэтому добавил параметр ПостфиксИмениКолонки. Если более 1 таблицы на форме, то его нужно заполнять любым символом, например, "_1"
Процедура СоздатьТаблицуНаФорме(ТаблицаИсточник, ИмяТаблицыНаФорме, ПостфиксИмениКолонки = "")
	// добавим таблицу: сначала саму таблицу, потом колонку.
	Реквизиты = Новый Массив;
	Реквизиты.Добавить(Новый РеквизитФормы(ИмяТаблицыНаФорме, Новый ОписаниеТипов("ТаблицаЗначений")));
	Для Каждого Ст ИЗ ТаблицаИсточник.Колонки Цикл
		Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, ИмяТаблицыНаФорме));
	КонецЦикла;

	// добавим реквизиты на форму
	ИзменитьРеквизиты(Реквизиты);

	// добавим элементы формы
	Таб = Элементы.Добавить(ИмяТаблицыНаФорме, Тип("ТаблицаФормы"));
	Таб.ПутьКДанным = ИмяТаблицыНаФорме;

	// запретим менять положение строк и сами строки, отключим командную панель
	Таб.ИзменятьСоставСтрок = Ложь;
	Таб.ИзменятьПорядокСтрок = Ложь;
	Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

	Для Каждого Ст ИЗ ТаблицаИсточник.Колонки Цикл
		Рек = Элементы.Добавить("Колонка" + Ст.Имя + ПостфиксИмениКолонки, Тип("ПолеФормы"), Таб);
		Рек.Вид = ВидПоляФормы.ПолеНадписи;
		Рек.Заголовок = Ст.Заголовок;
		Рек.ПутьКДанным = ИмяТаблицыНаФорме + "." + Ст.Имя;
	КонецЦикла;

	// заполним таблицу
	ЗначениеВРеквизитФормы(ТаблицаИсточник, ИмяТаблицыНаФорме);
КонецПроцедуры
Показать
user7777777; +1 Ответить
23. worker-good 03.07.19 12:14 Сейчас в теме
(22)
Процедура СоздатьТаблицуНаФорме(ТаблицаИсточник, ИмяТаблицыНаФорме, ПостфиксИмениКолонки = "")
// добавим таблицу: сначала саму таблицу, потом колонку.
Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы(ИмяТаблицыНаФорме, Новый ОписаниеТипов("ТаблицаЗначений")));
Для Каждого Ст ИЗ ТаблицаИсточник.Колонки Цикл
Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, ИмяТаблицыНаФорме));
КонецЦикла;

// добавим реквизиты на форму
ИзменитьРеквизиты(Реквизиты);

// добавим элементы формы
Таб = Элементы.Добавить(ИмяТаблицыНаФорме, Тип("ТаблицаФормы"));
Таб.ПутьКДанным = ИмяТаблицыНаФорме;

// запретим менять положение строк и сами строки, отключим командную панель
Таб.ИзменятьСоставСтрок = Ложь;
Таб.ИзменятьПорядокСтрок = Ложь;
Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

Для Каждого Ст ИЗ ТаблицаИсточник.Колонки Цикл
Рек = Элементы.Добавить("Колонка" + Ст.Имя + ПостфиксИмениКолонки, Тип("ПолеФормы"), Таб);
Рек.Вид = ВидПоляФормы.ПолеНадписи;
Рек.Заголовок = Ст.Заголовок;
Рек.ПутьКДанным = ИмяТаблицыНаФорме + "." + Ст.Имя;
КонецЦикла;

// заполним таблицу
ЗначениеВРеквизитФормы(ТаблицаИсточник, ИмяТаблицыНаФорме);
КонецПроцедуры
Показать


Не работает твой код
24. user7777777 02.10.19 14:36 Сейчас в теме
(23) Код работает, не выдумывайте, только что проверил
25. кольщик 23.11.19 11:16 Сейчас в теме
А если таблица значений уже есть на форме и ее не нужно создавать, какая часть кода остается?
26. starik-2005 2261 23.11.19 15:28 Сейчас в теме
(25) которая создает подчиненный табличной части реквизит-колонку и элемент, связанный с ней, на форме...
27. gupbhk1 11.04.20 16:10 Сейчас в теме
Ошибка
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(249)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
ИзменитьРеквизиты(Реквизиты);
по причине:

Неуникальное имя реквизита. Имя: "ТаблицаНаФорме"
28. starik-2005 2261 11.04.20 17:21 Сейчас в теме
(27)
Неуникальное имя реквизита. Имя: "ТаблицаНаФорме"
Ну так назовите его уникально )))
29. gupbhk1 11.04.20 21:14 Сейчас в теме
(28) Хорошо, это победил. Но что Вы скажите на ошибку снизу?


// добавим элементы формы
	Таб = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"));
	Таб.ПутьКДанным = "ТаблицаНаФорме";




{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(253)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)
Таб.ПутьКДанным = "ТаблицаНаФорме";
по причине:
Недопустимое значение
Недопустимое значение
30. denisros 12.04.20 21:57 Сейчас в теме
(29) А вы уверены, что созданная вами таблица значений или ТЧ формы, как реквизит этой формы, называется "ТаблицаНаФорме"?
Т.е. есть элементы формы, которые вы создаёте в:
Таб = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"));

А есть реквизиты формы, на который вы ссылаетесь:
Таб.ПутьКДанным = "ТаблицаНаФорме";

Т.о. в этот момент должен существовать реквизит формы "ТаблицаНаФорме"
31. Bespechnii_kot 16.10.20 12:35 Сейчас в теме
Благодарю за код, уже работает)
32. hiduk 104 11.12.20 11:22 Сейчас в теме
Оставьте свое сообщение

См. также

Подбор в управляемой форме - что может быть проще? Промо

Работа с интерфейсом v8::УФ 1cv8.cf Бесплатно (free)

Технологии модальности сейчас меняются на технологии асинхронности, многопоточности и прочие дивные вещи, что, в свою очередь, заставляет людей еще чаще спрашивать о том, что да как в этой новой нелегкой жизни. Разбираемся!

19.09.2017    46307    starik-2005    66    

Мобильный HTML-интерфейс, взгляд изнутри

Работа с интерфейсом Мобильная разработка v8::Mobile Бесплатно (free)

Для реализации красивого интерфейса в мобильном приложении 1С удобно использовать возможности стека HTML / CSS / JavaScript. О том, как построить отзывчивый HTML-интерфейс с перехватом событий и выполнением JavaScript-кода в поле HTML-документа на форме 1С, рассказал сотрудник отдела мобильной разработки в компании «1С-Рарус» Роман Сухоруков.

28.12.2020    2198    ingeneerz@gmail.com    10    

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Практика программирования Универсальные функции Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Большое количество динамических списков на форме, большое количество условий, долгое интерактивное добавление условий, оформление по значению элементов справочников - всё это не позволяет использовать интерактивный режим назначения условного оформления динамического списка. В публикации с открытым кодом детально разберем программное решение назначения условного оформления, создадим универсальную функцию для оформления списка.

30.11.2020    2672    SizovE    3    

Установка нескольких фильтров/отбора СКД в табличной форме, хранение в табличной части для отправки push/email уведомлений (ОтборКомпоновкиДанных, КомпоновщикНастроек, ДинамическийСписок)

Работа с интерфейсом Практика программирования v8 v8::УФ v8::СКД Бесплатно (free)

Рассмотрим, как организовать установку фильтров/отбора СКД (динамического списка) на push/email уведомления в подсистеме EDIbot (WebApp) для 1С в табличной части "События уведомлений".

02.11.2020    973    SizovE    0    

Недокументированное использование стандартных обработок из меню "Все функции". Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    114840    ekaruk    130    

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка v8 v8::Mobile 1cv8.cf Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    5693    leobrn    64    

Процедура генерации отдельных элементов формы для даты и времени

Работа с интерфейсом v8::УФ 1cv8.cf Бесплатно (free)

Развиваю тему статьи "Раздельный вывод частей даты на форму без программирования" - на этот раз реализовал процедуру для общего модуля, которая из элемента формы реквизита с типом "Дата" генерирует отдельный элемент для времени и выполняет все шаги, указанные в исходной публикации

03.10.2020    682    drmaxart    0    

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом v8 v8::УФ Россия Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    3240    kalyaka    5    

Полезности применения СКД Промо

Практика программирования Работа с интерфейсом v8::УФ v8::СКД УТ10 Россия Бесплатно (free)

Нюансы при работе из СКД на программном уровне.

11.04.2012    52369    logarifm    42    

Переопределение представления ссылочного значения

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Переопределение представления ссылочного значения

17.09.2020    3242    sam441    15    

Дружелюбный интерфейс пометки и отмены пометки в диалоге табличных полей, для управляемых форм.

Работа с интерфейсом v8::УФ Бесплатно (free)

Пример кода пометки и отмены пометки в диалоге табличный полей. Позволяет выставить флажки или какое либо другое значение в табличной части формы, у которой применен отбор.

14.08.2020    3313    DrZombi    14    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    24652    Tatitutu    12    

Использование флажков в динамических списках

Практика программирования Работа с интерфейсом v8::УФ Бесплатно (free)

В статье расскажу как в динамических списках можно использовать поле флажка для отметки строк. Используемый прием можно использовать не только для галочек, но и для любого поля ввода. Несмотря на то, что редактирование динамических списков напрямую невозможно, есть способ обойти платформу. Подробности в публикации.

04.08.2020    5474    nekit_rdx    26    

Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков

Комиссионная торговля Оптовая торговля Розничная торговля v8 v8::ОУ 1cv8.cf УУ Абонемент ($m)

Разработка для контроля остатков регистров накопления. Может быть использована в качестве дополнения или замены типовых механизмов любых конфигураций (ERP 2, УТ 11, КА 2 или "устаревших" УТ 10, УПП и многих других). Контролироваться может как отдельный ресурс одного регистра, так и комплексно – в виде комбинации логически связанных ресурсов разных регистров накопления. Контроль может осуществляться при оперативном, неоперативном ("задним" числом) проведении документов и при отмене проведения. Разработка доступна в виде подсистемы или в виде расширения.

1 стартмани

25.06.2020    3705    3    Алексей Воробьев    2    

Обработка нажатия клавиши

Работа с интерфейсом v8::УФ Бесплатно (free)

Один из способов обработки события нажатия клавиши.

10.06.2020    3597    RotaninV    7    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Тест-центр – инструмент автоматизации многопользовательских нагрузочных испытаний информационных систем на платформе 1С:Предприятие 8. С его помощью можно моделировать работу предприятия без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях. В видео показан пример с внедрением конфигурации Тест-центра в произвольную информационную базу и создание простого сценария нагрузочного теста.

16.09.2012    35913    Aleksey.Bochkov    29    

Английский интерфейс для 1С: Управление торговлей. Перенос перевода из 1С: ERP

Работа с интерфейсом v8::ОУ УТ11 Россия УУ Бесплатно (free)

Полноценный англоязычный интерфейс для 1С: Управление торговлей. Я передаю идею, а пользоваться или нет, решайте сами. Надеюсь, эта статья ускорит появление продукта 1C:Trade Management 11.

05.05.2020    2560    _Ramzes    7    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    4884    77dream77    21    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    5483    randomus    20    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

Работа с интерфейсом v8 БП2.0 УПП1 БУ Бесплатно (free)

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    20791    KapasMordorov    4    

[Шпаргалка] Свой диалог выбора типа значения (элемента)

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    4255    rpgshnik    6    

Простой и красивый интерфейс

Работа с интерфейсом Мобильная разработка v8::Mobile Бесплатно (free)

Разработчики мобильных приложений на платформе 1С сталкиваются с проблемой адаптации сгенерированного платформой интерфейса под удобство использования. О том, какие приемы помогут сделать интерфейс красивым и удобным, на конференции Infostart Event 2019 Inception рассказал руководитель отдела мобильной разработки компании «1С-Рарус» Никита Бакшеев.

30.01.2020    13996    Baksheev-Nikita    33    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

В данной публикации рассмотрим базовый подход к использованию собственных макетов в СКД на примере формирования небольшого отчета.

13.01.2020    20762    aximo    14    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    46662    mtv:)    74    

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Практика программирования Работа с интерфейсом v8 ДО Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    5295    pavelpribytkin96    2    

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    10193    John_d    16    

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом v8 Бесплатно (free)

Новая порция лайфхаков по работе с интерфейсом 1С. На этот раз разбираем работу со списками - учимся их упорядочивать, сортировать, создавать новые и перемещать старые. Это очень полезное дополнение к уже имеющимся знаниям по интерфейсу 1С.

03.12.2019    16002    VachKirp    14    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

27.07.2012    32377    milkers    10    

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом v8 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    9512    Vlan    44    

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    12613    John_d    24    

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений v8 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    5508    user1069006    1    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

29.11.2012    47422    aavolkoff    50    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    9182    slozhenikin_com    27    

Лайфхаки 1С (часть 2) Настройка работы интерфейса такси. Настройка и советы по работе

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Советы по настройке интерфейса Такси и особенности работы в этой среде.

24.10.2019    11861    VachKirp    10    

Изменение макета в карточке номенклатуры(УТ 11, КА 2)

Практика программирования Работа с интерфейсом v8::УФ ERP2 УТ11 КА2 Бесплатно (free)

Краткая памятка по выведению добавленного реквизита в справочнике Номенклатура в стандартную карточку номенклатуры в УТ 11, КА 2, ERP 2.

24.10.2019    4837    darkultro37    4    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом v8 БП2.0 Россия Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    37521    dour-dead    18    

Создание асинхронных виджетов

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    13487    YPermitin    19    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Рассматриваем основные подводные камни, с которыми приходится сталкиваться при программной работе с формами, а также способы обхода самых частых проблем.

06.10.2019    12331    YPermitin    31    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    13609    VachKirp    10    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

В УТ 11 в свойствах конфигурации задано хранилище вариантов отчетов. Исходя из этого, все отчеты будут использовать для своих вариантов именно это хранилище (если, конечно, в свойствах самого отчета не задано другое хранилище). По сути, все варианты для отчетов находятся в справочнике "Варианты отчетов", который заполняется при первом запуске системы. Вполне очевидно, что если Вы создаете свой отчет (внешний или внутренний) с несколькими вариантами, у Вас не будет возможности выбирать нужный вариант (переключаться между вариантами), т.к. в выше указанном справочнике нет никакой информации о вариантах созданного Вами отчета. В этой небольшой статье я покажу один из способов решения данной проблемы.

27.05.2012    47433    1cUserAndrew    25    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    24937    YPermitin    40    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Практика программирования Работа с интерфейсом v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    8287    Sergey_Borisovi4    3    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    67122    rpgshnik    68    

Создаем отчет с заданной периодичностью на СКД Промо

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Россия Бесплатно (free)

Учимся создавать отчет с заданной периодичностью с использованием СКД.

16.04.2012    73947    Lyns_owner    36    

[Механизм интерфейса] Часы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    10388    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    14771    nagaitseff    15    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    12051    IvanAT1981    15    

Практика регулярных выражений в 1С или "парсим неудобные форматы" Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    30163    1cspecialist    33    

Форма отчета СКД

Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    13206    vasilev2015    5    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    11563    dsdred    9    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Работа с отчетами в пользовательском режиме, формы отчетов. Понятие пользовательских настроек в отчетах на СКД. Определение состава пользовательских настроек для разделов в целом и для отдельных элементов, для всего отчета и для отдельных группировок. Видимость функциональных опций в отчетах на СКД.

09.07.2019    33358    ids79    2