1с изменение значения ячейки отчет
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:
Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х
Для того, чтобы появилась возможность использовать свойство "Значение", необходимо явно присвоить свойству ячейки "СодержитЗначение" значение Истина или установить флажок "Содержит значение" в палитре свойств.
Для ячейки, у которой установлен признак "СодержитЗначение", можно задать тип значения, размещаемого в ячейке.
Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство "Формат", которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()
Элемент управления в табличном документе
Для ячейки, у которой установлен признак "СодержитЗначение", можно также задать элемент управления, который будет использоваться для редактирования этого значения.
Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода "УстановитьЭлементУправления()". Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство "ЭлементУправления", которое возвращает элемент управления, назначенный для ячейки.
Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:
Ниже показан пример установки элемента управления типа "Флажок" из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:
Разберем самые важные свойства и методы:
Свойство "ВстроенВЯчейку" имеет тип "булево" и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.
Свойство "Видимость" позволяет показать или скрыть элемент управления.
Свойство "Значение" предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.
Метод "Расположить" позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.
2. в модуле формы Результату цепляешь обработчик ПриИзмененииСодержимогоОбласти - в нем смотришь что где было поменяно, и дальше алгоритм расчета
выдает ошибку:
В самом примере все ок, туда передается адрес
Это как то связано с тем что пример сделан на упр формах а мой отчет на толстом клиенте?
Д (8) Да, там есть поле(редактируемое пользователем) от которого должны перерасчитываться остатки на дату и по итогам.
определяешь что за поле соответствует ячейке табдока
(10) А еще интереснее будет когда ползователь залезет в настройки и поменяет группировки.
(12) на первых порах можно отрубить стандартную форму настроек, подсунуть свою - чтоб не повадно было чего-то менять
а так да - на написание почти универсального алгоритма, учитывающего различные комбинации вложенности группировок как по строкам, так и по столбцам, с использованием массивов-структур-массивов-структур, заданием расчетных формул, влияющих и зависимых полей - у меня ушло НЕ МЕНЕЕ ПОЛУГОДА
пусть ТС решает что нужнее
в моем случае это была целая подсистема планирования продаж, я и не жалею - куча народа реально пользуется
а если жестко зафиксировать структуру настроек, отрубив стандартную форму, то в его случае можно наваять гораздо быстрее
(11) Объявил в модуле отчета переменную, тут же вставил функцию ПолучитьПолеПоРасшифровкеОбластиСКД. Параметр областьТабличногоПоля у меня называется СуммаРасход(я так понимаю это наименование той самой редактируемой ячейки в макете?), затем из модуля формы обращаюсь к этой функции. Но при проверке ругается: Переменная не определена (СуммаРасход)
(17) не-е-е. так не пойдет, макеты тут ни причем
у тебя есть табличный документ, в СКД он обычно носит имя Результат, так вот ОбластьСКД в данном случае подразумевает под собой область этого табдока Результат, т.е. по-сути одну ячейку, ячейку и передавай
в моих отчетах редактируемых "видов" ячеек было несколько,
1) из модуля объекта в ПриКомпоновкеРезультата(ДокументРезультат, . )
.
Поле = ПолучитьПолеПоРасшифровкеОбластиСКД(ДокументРезультат.Область(индСтр, индКол));
.
вернет тебе только название самого поля но не его значение
2) из модуля формы
.
.
Может тогда возвратить структуру из ПолучитьПолеПоРасшифровкеОбластиСКД?
(20) да без разницы, главное чтобы сам помнил и ориентировался что у тебя в коде возвращается
лично мне проще написать две почти похожие функции, а спустя пол года, мельком взглянув, по названию понять что же возвращается функцией
(21) . при изменении данного поля чтобы автоматически пересчитывался остаток на каждую дату(поле "Остаток") и затем в итогах?
(22) что там за код в (4) я не смотрел, и честно говоря нет ни времени ни желания
у тебя есть значение до редактирования - можно запоминать то что в ТекущейОбласти в обработчике ПриАктивизации для табдока
у тебя есть новое значение после ввода пользователем в ПриИзмененииСодержимогоОбласти, считаешь разность между ними, а дальше в цикле все ячейки остатка на последующие даты увеличиваешь на эту дельту, в т.ч. и итог
PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное ускорение видеокарты В Window Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C 3
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов было вяснено, что проблема Вывод результата запроса на форму УП в таблицу значений (аналог СоздатьКолонки() для УП) 2
при разработке на обычных формах было удобно выводить результат запроса используя метод СоздатьКолоки(): Процедура ПоискНажатие(Элемент) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДокументоОборот.Этап, | ДокументоОборот.Отдел, | Докуме Динамический отчет на СКД с разными вариантами 3
На днях делал несколько однотипных отчетов на СКД. Общий принцип: формируются все варианты отчета, указанные в настройках схемы и каждый вариант выводится на отдельной вкладке. Потом возникла мысль попробовать объединить все схемы в один отчет Посмотреть все результаты поиска похожих
Еще в этой же категории
Как программно изменить текст, цвет, фон ячейки или области табличного документа? 6
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Загрузка данных из файла табличного документа в управляемом приложении 3
В управляемом приложении (если конечно вы не работаете в Толстом клиенте) можно столкнутся с такой проблемой, что многие функции работают только на сервере. Что делать, если у Вас есть файл-макет с данными, которые надо прочитать (обработать)? Надо Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)? 1
Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице. для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки Прим Как преобразовать MXL файл в Таблицу Значений? 0
Встретилась задачка, нужно было загружать данные из mxl файлов выгруженных из другой базы 1С. Файл MXL – это созданный в программе «1С: Предприятие» (последних версий 7.7 или 8) табличный документ. вот код быстрой конвертации mxl в тз ТабДок Как сделать Расшифровку в табличном документе 0
Вопрос: Подскажите пожалуйста, каким образом можно сделать следующее. У меня есть выводимый в табличный документ результат запроса, к ячейке есть расшифровка. Я хочу чтобы при двойном клике на ячейку выполнялась процедура которая к примеру зап Посмотреть все в категории Табличный документ
Сегодня решить посмотреть Бухгалтерию КОРП. Нашёл в ней очень интересную штуку: поле в котором показан результат сложения выделенных ячеек печатной формы. Конечно, такую штуку бы правильнее реализовать на уровне платформы. Но коль нет, можно оказывается сделать ручками. Как говориться, и за это богам спасибо.
Вот исходный код из Бухгалтерии КОРП:
Код 1C v 8.х
Подумав немного, я добавил в функцию ещё расчёт среднего и определение количества ячеек с числами. Получилось вот что:
Код 1C v 8.х
Результат на картинке:
Да, чуть не забыл самое главное, функцию надо вызвать в обработчике ПриАктивизацииОбласти поля табличного документа.
Похожие FAQ
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Функция загружает весь табличный документ в таблицу значений 6
// Вариант 1 // По переданному табличному документу возвращает таблицу значений, // при условии что в первой строке таблицы - идентификаторы колонок // Автор : dimoff Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт ТаблицаДанн Посмотреть все в категории Табличный документ
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Функция лишь вычисляет, а еще необходимо позаботиться о том, чтобы отобразить результат, например в какой-либо надписи
Код 1C v 8.х
Кроме того, раз уж Вы добавили среднее и количество, то их тоже нужно возвращать
Код 1C v 8.х
Процедура ПолеТабличногоДокументаПриАктивизацииОбласти(Элемент)
ВычислитьСуммуВыделенныхЯчеекТабличногоДокумента(Элемент);
КонецПроцедуры
Процедура ПолеТабличногоДокументаПриАктивизацииОбласти(Элемент)
ВычислитьСуммуВыделенныхЯчеекТабличногоДокумента(ЭлементыФормы.ПолеТабличногоДокумента);
Читайте также: