Программное создание колонки в ТЧ и сохранение значения в нем
Здравствуйте!
В документе есть ТЧ1. И в модуле формы написали код
Колонка добавляется, значение ввести можно, но при нажатии кнопки записать, запись не сохраняется.
Подскажите, пожалуйста, чего не хватает?
Спасибо.
В документе есть ТЧ1. И в модуле формы написали код
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
нРеквизиты = Новый Массив;
а="маска";
нРеквизиты.Добавить(Новый РеквизитФормы(а, Новый ОписаниеТипов("Число"), "Объект.ТабличнаяЧасть1", а, Истина));
ИзменитьРеквизиты(нРеквизиты);
нЭлемент = Элементы.Добавить(а, Тип("ПолеФормы"), Элементы.Ведомость10);
нЭлемент.Вид = ВидПоляФормы.ПолеВвода;
нЭлемент.ПутьКДанным = "Объект.ТабличнаяЧасть1."+а;
КонецПроцедуры
ПоказатьКолонка добавляется, значение ввести можно, но при нажатии кнопки записать, запись не сохраняется.
Подскажите, пожалуйста, чего не хватает?
Спасибо.
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Создание мульти-базовых отчетов. Все, что вы хотели об этом знать
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- Материально-производственный отчет в 1С:ЕРП, КА, 1С:ERP УХ
- Инструменты разработчика "Инструментики" для тонкого клиента 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
На самом деле вы добавляете колонку не в ТЧ. Это бы означало, что вы программно "на лету" поменяли структуру базы данных, а в 1С это возможно только при изменении конфигурации.
Программно вы добавляете всего лишь колонку в реквизит формы, который связан с ТЧ и которая "живет" только до конца жизни формы.
Для сохранения этих данных в БД нужны дополнительные усилия. Какие именно - зависит от целей. Можно, например, хранить ее в дополнительной табличной части для таких опциональных реквизитов. Можно в регистре сведений. Но тогда придется еще заморочиться с обеспечением ссылок на строки.
Лучше расскажите, какую бизнес-проблему/задачу вы решаете.
ЗЫ. Для понимания можно считать что ТЧ в форме - это ТЗ, "пристегнутая" к реальной ТЧ. И те колонки, которые вы добавляете через редактор формы или программно - это обычные колонки ТЗ, которые нужно самому как-то заполнять и куда-то потом эти данные девать.
Программно вы добавляете всего лишь колонку в реквизит формы, который связан с ТЧ и которая "живет" только до конца жизни формы.
Для сохранения этих данных в БД нужны дополнительные усилия. Какие именно - зависит от целей. Можно, например, хранить ее в дополнительной табличной части для таких опциональных реквизитов. Можно в регистре сведений. Но тогда придется еще заморочиться с обеспечением ссылок на строки.
Лучше расскажите, какую бизнес-проблему/задачу вы решаете.
ЗЫ. Для понимания можно считать что ТЧ в форме - это ТЗ, "пристегнутая" к реальной ТЧ. И те колонки, которые вы добавляете через редактор формы или программно - это обычные колонки ТЗ, которые нужно самому как-то заполнять и куда-то потом эти данные девать.
(4) База самописная. Есть документ "Свод остатков", в нем заполняются данные по текущим остаткам тмц на складах. Далее заполняются колонки, что списать, что переместить, а что выдать в эксплуатацию. Далее по заполненным данным из колонки "Выдать в эксплуатацию" формируем документ "Ведомость". В документе "Ведомость" должны сформироваться колонки, если в документе "Свод остатков" в колонке "Выдать в эксплуатацию" значения заполнены.
(7) Не, все равно непонятно нафига :) Нужны картинки или подробное описание.
Может, вы просто хотите отображать ТЧ в транспонированном виде, типа сводной таблицы/шахматки?
Тогда на форму выводите не ТЧ, а ТЗ (с программным формированием колонок). А в ТЧ данные храните как в регистре и на форму не выводите.
Просто при открытии формы загружаете из нее данные в ТЗ в нужном виде, а перед записью запихиваете обратно из ТЗ в ТЧ.
Может, вы просто хотите отображать ТЧ в транспонированном виде, типа сводной таблицы/шахматки?
Тогда на форму выводите не ТЧ, а ТЗ (с программным формированием колонок). А в ТЧ данные храните как в регистре и на форму не выводите.
Просто при открытии формы загружаете из нее данные в ТЗ в нужном виде, а перед записью запихиваете обратно из ТЗ в ТЧ.
(8) Есть документ "Свод"
рис.1
На рисунке выделены поля "Наименование" - это то, что есть на складе.
Далее указана колонка, в которой заполняется то, что планируется выдать в эксплуатацию.
Не обращайте внимания на наименования, это пример.
Заполнив Т.Ч., нажимаем на кнопку сформировать "Ведомость", её на картинке не видно, но она есть.
При нажатии на кнопку "Ведомость" формируется документ "Ведомость"
рис.2
На рисунке видны по горизонтали те позиции, которые были заполнены в документе "Свод"
Т.е. ТЧ "Ведомость" содержит только один предопределенный столбец, это "сотрудник", а все остальные появляются в прямой зависимости от заполненности в документе "Свод".
рис.1
На рисунке выделены поля "Наименование" - это то, что есть на складе.
Далее указана колонка, в которой заполняется то, что планируется выдать в эксплуатацию.
Не обращайте внимания на наименования, это пример.
Заполнив Т.Ч., нажимаем на кнопку сформировать "Ведомость", её на картинке не видно, но она есть.
При нажатии на кнопку "Ведомость" формируется документ "Ведомость"
рис.2
На рисунке видны по горизонтали те позиции, которые были заполнены в документе "Свод"
Т.е. ТЧ "Ведомость" содержит только один предопределенный столбец, это "сотрудник", а все остальные появляются в прямой зависимости от заполненности в документе "Свод".
Прикрепленные файлы:
(9) Выводить номенклатуру в колонках - это жесть. Но пока оставим.
Пока пройдем по общим моментам.
Очевидно, что в документе "Ведомость" вам нужно сохранять информацию по номенклатуре, выданной сотрудникам.
В регистре вы бы завели измерения "Сотрудник" и "Номенклатура", комбинация которых содержала бы эту информацию.
Точно так же можно сделать и в табличной части.
То есть делаете табличную в часть в документе (не на форме!) с колонками "Сотрудник", "Номенклатура", "Количество" (к примеру).
Это позволит без проблем и избыточности сохранить в документе нужную информацию.
На форму эту табличную часть не выводите!
На форму выводите то представление этих данных, которое удобно для пользователя.
Например, можно вывести дерево, где узлами первого уровня будет "Сотрудник", а узлами второго уровня - "Номенклатура".
Или можно выводить сводную таблицу по сотрудникам, а рядом таблицу с номенклатурой отображающий данные по текущему сотруднику из первой таблицы.
Или как на скриншоте - сгенерировать колонки для каждой номенклатуры.
Не суть.
Суть в том, что представление может быть каким угодно, а табличную часть документа вы используете скрыто от пользователя только для сохранения этих данных в документе (в базе данных). Причем в неизбыточной и удобной для запросов простой табличной форме. При открытии документа вычитываете их в представление на форме, а перед записью документа перегружаете данные из представления на форме в табличную часть документа.
Пока пройдем по общим моментам.
Очевидно, что в документе "Ведомость" вам нужно сохранять информацию по номенклатуре, выданной сотрудникам.
В регистре вы бы завели измерения "Сотрудник" и "Номенклатура", комбинация которых содержала бы эту информацию.
Точно так же можно сделать и в табличной части.
То есть делаете табличную в часть в документе (не на форме!) с колонками "Сотрудник", "Номенклатура", "Количество" (к примеру).
Это позволит без проблем и избыточности сохранить в документе нужную информацию.
На форму эту табличную часть не выводите!
На форму выводите то представление этих данных, которое удобно для пользователя.
Например, можно вывести дерево, где узлами первого уровня будет "Сотрудник", а узлами второго уровня - "Номенклатура".
Или можно выводить сводную таблицу по сотрудникам, а рядом таблицу с номенклатурой отображающий данные по текущему сотруднику из первой таблицы.
Или как на скриншоте - сгенерировать колонки для каждой номенклатуры.
Не суть.
Суть в том, что представление может быть каким угодно, а табличную часть документа вы используете скрыто от пользователя только для сохранения этих данных в документе (в базе данных). Причем в неизбыточной и удобной для запросов простой табличной форме. При открытии документа вычитываете их в представление на форме, а перед записью документа перегружаете данные из представления на форме в табличную часть документа.
(11)Вы понимаете, что чтобы хранить данные в таблице, ее нужно создать физически. А физическое создание таблицы программным способ в 1С не предусмотрено. Вы можете создавать любые колонки на своей форме с любыми значениями, но жить они будут только пока жива форма. Сохранение нужно обеспечивать отдельными механизмами.
(16). Почитайте внимательно. Сан Саныч дело говорит.
1. В метаданных документа создаёте табличную часть, которая выглядит очень себе двухмерно, допустим: Сотрудник, Номенклатура, Количество. На форму её не выкидываете.
2. При открытии формы делаете запрос по табличной части документа и строите свою трехмерную таблицу, на основании "плоской" табличной части документа, которую юзер не видит. Добавляя колонки и размещая данные в правильные ячейки.
3. Вам нужно предусмотреть добавление новой колонки в ваше представление на форме, и соответствующее отражение этого действия в ТЧ документа.
4. При записи документа обходите свою "трехмерную" таблицу и перекатываете её в "двухмерную". Выгружаете данные в ТЧ документа. Записываете.
Профит!
1. В метаданных документа создаёте табличную часть, которая выглядит очень себе двухмерно, допустим: Сотрудник, Номенклатура, Количество. На форму её не выкидываете.
2. При открытии формы делаете запрос по табличной части документа и строите свою трехмерную таблицу, на основании "плоской" табличной части документа, которую юзер не видит. Добавляя колонки и размещая данные в правильные ячейки.
3. Вам нужно предусмотреть добавление новой колонки в ваше представление на форме, и соответствующее отражение этого действия в ТЧ документа.
4. При записи документа обходите свою "трехмерную" таблицу и перекатываете её в "двухмерную". Выгружаете данные в ТЧ документа. Записываете.
Профит!
(10)
это реально жесть
(11)
я б вот 99% использовал регистр накопления
с ресурсами кол-во и сумма
в измерениях думаю хватило бы сотр,номенкл и артикул
мне кажется это бы облегчило вам в дальнейшем пользование информацией в разрезе периодов
Выводить номенклатуру в колонках - это жесть
это реально жесть
(11)
А без регистров никак не обойтись?
я б вот 99% использовал регистр накопления
с ресурсами кол-во и сумма
в измерениях думаю хватило бы сотр,номенкл и артикул
мне кажется это бы облегчило вам в дальнейшем пользование информацией в разрезе периодов
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот