1с как изменить путькданным
Типовой алгоритм добавляет программно колонки для ТЧ документа.
Если для добавляемого поля на форме сделать:
, то вываливается ошибка установки значения.
- работает в типовом коде.
Каким образом можно вывести итог по такой колонке в подвал?
(11) Да даже если бы были, таблица формы вроде бы авто итог умеет считать только реквизитам метаданных.(11) Ага) Итого в подвале считаются только по реквизитам ТЧ. Реквизиты данных форм автоматом не рассчитываются, над руками
Для сч = 1 По 12 Цикл
Элементы["НачисленияЗначение" + сч].ТекстПодвала = Объект.Начисления.Итог("Значение" + сч);
Напиши процедуру обновления итогов подвала и вперед)
(15)Изменение любой добавленной колонки - ПриИзмненении
Изменение самой таблицы. потому что могут удалить строку - ПриИзмненении
При программном заполнении/Очистке самой ТЧ - по коде над пройтись (15) ПриИзменении таблицы покрывает все прочие обработчики, но не покроет программный подбор или заполнение. Учитывайте также, что прямое изменение текста подвала на клиенте будет делать неявный серверный вызов, поэтому лучше использовать обновление значений итогов через реквизиты формы.
В общем, в моем случае решилось вот таким образом.
Что делать в случае заполнения ТЧ дополнительной обработкой - остается вопросом.
При этом ПутьКДанным = "Объект.Начисления", НомерПоказателя = от 1 до 12
Реквизит, содержащий итог это должен быть "одиночный" реквизит формы, а не коллекции.(4)Т.е. нужно создать еще один реквизит формы, в него каким-то образом присваивать значение итога и сделать
(9)мдя. это значительно усложняет получение нужного значения.ну что ж, пойдем этим путем Поле.ПутьКДаннымПодвала = "Объект.ИмяТЧ.ИтогКолонка", то вываливается ошибка установки значения.
А это когда происходит?
(7) Странно. Я внешку выше приложил. В ней 1 элемент руками создан, и 2 программно. У всех итоги рассчитываются (10)По всей видимости это не работает, потому что в ТЧ изначально нет колонок Значение1. ЗначениеN, они добавляются так же программно. (11) Да даже если бы были, таблица формы вроде бы авто итог умеет считать только реквизитам метаданных.(11) Ага) Итого в подвале считаются только по реквизитам ТЧ. Реквизиты данных форм автоматом не рассчитываются, над руками
Для сч = 1 По 12 Цикл
Элементы["НачисленияЗначение" + сч].ТекстПодвала = Объект.Начисления.Итог("Значение" + сч);
Напиши процедуру обновления итогов подвала и вперед)
(14)Ага, спасибо. Еще надо бы придумать, в какой момент ее вызывать.По всей видимости, при обновлении отображения, ну или в каждом обработчике "ПриИзмненении" для Элементы.НачисленияЗначениеN (15)
Изменение любой добавленной колонки - ПриИзмненении
Изменение самой таблицы. потому что могут удалить строку - ПриИзмненении
При программном заполнении/Очистке самой ТЧ - по коде над пройтись (15) ПриИзменении таблицы покрывает все прочие обработчики, но не покроет программный подбор или заполнение. Учитывайте также, что прямое изменение текста подвала на клиенте будет делать неявный серверный вызов, поэтому лучше использовать обновление значений итогов через реквизиты формы.
В общем, в моем случае решилось вот таким образом.
Что делать в случае заполнения ТЧ дополнительной обработкой - остается вопросом.
(5) sannt, я понимаю что так можно задать в конфигураторе.
в выложенной обработке как раз есть еще поле формы Реквизит1
для которого это так и сделано.
НО:
1. почему такой путь нельзя задавать при програмном добавлении элементов в форму?
2. и как же, наконец, проверить ваше предложение
Если нужна привязка именно к конкретной строке, а не к текущей, то только программно
т.е. какой путь нужно прописать свойству ПолеТест.ПутьКДанным . (6) Rothschild, я не правильно выразился. Я имел ввиду программную установку значения в поле (реквизиту), а не привязку. Например:
с проверкой, что строка вообще есть. Другого способа не знаю.
По поводу программной установки ПутьКДанным с привязкой к текущей строке. не могу сказать почему нельзя.
Вот и я не смог найти. Я когда-то в 1С пришел из Visual FoxPro , а в VFP в аналогичной ситуации можно было использовать ЛЮБОЙ текст, который vfp может выполнить и получить значение. Иногда по аналогии пытаюсь заставить что-то работать. иногда помогает, а иногда и вот так. (8) n_kremko, вот я например абсолютно не понял, что Вы хотите сделать. у разных строчек таблицы значений разные пути к данным?? только один вопрос, а зачем? чего Вы хотите добиться в целом? (9) jigourt,насколько я понял задача состоит в создании в форме
несколько полей формы,
привязанных к конкретной ячейке конкретных строк таблицы значений:
ПолеФормы0 - к ТаблицаСостояний[0].Значение
ПолеФормы1 - к ТаблицаСостояний[1].Значение
ПолеФормы2 - к ТаблицаСостояний[2].Значение
ну конечно привязывать надо после того, как эти строки добавлени в таблицу.
:) (10) Rothschild, а если строк 100, то 100 полей создавать?? )) (11) Шура,
логика бывает:
математической, женской и прикладной
.
и именно в этом порядке следования
;)
11.
jigourt
12.01.14 16:12
(10) Rothschild, а если строк 100, то 100 полей создавать?? ))
Да. Именно 100 и создавать. Хотя 100 их там скорее всего не будет.
Тип у реквизита строка неограниченной длины.
Нужно хотя- бы такое решение, которое позволит добавить ПолеВвода, добавить реквизит, присвоить ему значение, и связать данное полеВвода с реквизитом на форме, причем имя поля и реквизита ЗАРАНЕЕ НЕИЗВЕСТНО И ЗАДАЕТСЯ ПРИ добавлении на форму.
при использовании ИзменитьРеквизиты(. ) в хелпе написано что к добавленному реквизиту можно обратиться ТОЛЬКО Этаформа.<ИмяДобавленногоРеквизита>
и действительно, отладчик реквизиты добавленные показывает, но через Этаформа["<ИмяДобавленногоРеквизита>"] обратиться к ним не удается.
ЗначениеВРеквизитФормы("значение", "<ИмяДобавленногоРеквизита>");
ЗначениеВРеквизитФормы("значение", "Этаформа.<ИмяДобавленногоРеквизита>") и пр. не проходят, им похоже не нравиться тип реквизита.
работает , ТОЛЬКО так:
Этаформа.<ИмяДобавленногоРеквизита> = "Значение",
Иногда, при установке отбора строк табличного поля необходимо выполнить какие-либо действия - но как это отловить!?
Разместил: E_Migachev Версии: | 8.x | 8.2 УП | Дата: 29.09.2014 Прочитано: 15503Похожие FAQ
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 19Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список
Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 14
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма
Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора
Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
В этой статье пойдет речь о подсветке орфографии в 1С. Все привыкли, что при использовании практически любых программ, где можно писать текст, будь то почтовик или любой мессенджер, неправильно написанные слова подсвечиваются автоматически. И это стало обыденностью.
Нам поступила задача: для удобства работы с программой на форме в 1С сделать такую же подсветку орфографии. Задача есть – нужно выполнять. Так как ранее мы не сталкивались с подобным, пришло время обратится к Синтакс-помощнику. В нем мы нашли свойство поля ввода формы – ПроверкаПравописанияПриВводеТекста.
Все так просто: включаем использование – и вуаля, все работает? Но, раз эта статья существует, значит все не так просто. Как оказалось, это свойство (а также несколько других, которые были бы очень полезны, например, СпециальныйРежимВводаТекста), доступно только в мобильном приложении.
Но мы не отчаивались и решили спросить у Гугла, что наши коллеги, столкнувшиеся с данным вопросом, уже придумали. Мы нашли множество решений: и COM соединение с Word, и - самый популярный вариант – использование Яндекс Спеллера. Все они действительно рабочие, но все-таки мы были уверены, что можно сделать проще и красивее. И, действительно, после пары экспериментов мы нашли решение. Так как этот способ при быстром поиске в интернете мне найти не удалось, полагаю, эта статья полезна тем, кто столкнулся с такой же проблемой. Далее расскажу о реализации функции на нашем примере.
Задача – проверять текст, введенный пользователем в поле Вопрос.
Скорее всего, это абстрактная ситуация именно то, с чем вы столкнетесь при решении проблемы, примерно такие же исходные данные будут и у вас.
Что нужно сделать – создаем реквизит формы, назовем его ВопросФорматированныйДокумент с типом ФорматированныйДокумент, а также у Поля Ввода Вопрос изменим ПутьКДанным до только что созданного реквизита формы ВопросФорматированныйДокумент
Но нам нужно, чтобы текст, введенный пользователем в это поле, сохранялся в реквизите Документа Вопрос. Для этого напишем в функциях ПриСозданииНаСервере И ПередЗаписью следующий код:
Теперь данные будут корректно сохранятся и повторно выводится на форму при открытии.
На этом все действия закончены. Как по мне, это очень лаконичное решение. Надеюсь, эта статья будет вам полезна. Результат работы проверки орфографии ниже:
Статью подготовил Селютин Никита, программист 1С:Предприятие партнерской сети "ИнфоСофт"
Читайте также: