Imagesforyou.ru

IMG FOR YOU — ИНТЕРЬЕРНАЯ ФОТОСТУДИЯ
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как добавлять колонки, группировки и отборы в отчеты

Сформируем оборотно-сальдовую ведомость по счету 62:

типовые отчеты

Для примера добавим дополнительную колонку Признак юр/физлицо (реквизит справочника Контрагенты). Для этого в командной панели отчета нажмем Показать настройки.

бухгалтерия предприятия 3.0

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

бухгалтерия предприятия 3.0

Т.к. нас интересует реквизит справочника Контрагенты, в открывшемся списке раскрываем именно поле Контрагенты, в появившемся списке выбираем поле Юридическое/Физическое лицо и нажимаем ОК.

бухгалтерия предприятия 3.0

В результате в таблице появились данные о новой колонке. Если колонок нужно добавить несколько, опять нажимаем Добавить и повторяем ритуал.

Сформировав отчет, видим изменения:

изменение отчетов

Заполнение табличной части документа

Создадим новую форму обработки.

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

В рамках нашего примера будет произведена обработка уже существующей табличной части «Товары». Для каждой строки будет установлена ручная скидка в размере 5%. Так же, мы рассчитаем саму сумму данной скидки, равную сумме товаров в строке, умноженных на 0,05.

&НаСервере Процедура ВыполнитьКоманду(Команда, ОбъектыНазначения) Для каждого ЗаказКлиента из ОбъектыНазначения Цикл ЗаказКлиентаОбъект = ЗаказКлиента. ПолучитьОбъект() ; Для каждого СтрокаТЗ из ЗаказКлиентаОбъект. Товары Цикл СтрокаТЗ. ПроцентРучнойСкидки = 5 ; СтрокаТЗ. СуммаРучнойСкидки = СтрокаТЗ. Сумма * 0 . 05 ; КонецЦикла ; ЗаказКлиентаОбъект. Записать() ; КонецЦикла ; КонецПроцедуры

Как изменить табличную часть документа из формы внешней обработки для управляемого приложения (на примере программы 1С:Управление торговлей, редакция 11)

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

Читайте так же:
Виды карт памяти microsd

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

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

1. Создание внешней обработки

Создаем внешнюю обработку. В модуле внешней обработки создаем экспортную процедуру «СведенияОВнешнейОбработке». В параметр «Вид» устанавливаем значение «ЗаполнениеОбъекта», настройку команды «Использование» устанавливаем «ОткрытиеФормы».

Создаем форму обработки с необходимыми элементами управления. В нашем случае это – поле для ввода процента и таблица, в которой будут отражены строки табличной части документа. Создаем две команды «Рассчитать» и «Перенести в документ». По кнопке «Рассчитать» мы будем вычислять в таблице формы обработки новое значение цены с учетом процента, а по кнопке «Перенести в документ» — заполнять табличную часть документа новыми значениями.

2. Описание модуля формы

Перейдем к описанию модуля формы. Прежде всего при открытии формы нам необходимо заполнить таблицу данными табличной части. Для этого мы используем серверную процедуру «ПриСозданииНаСервере» в которой получим ссылку на документ и заполним реквизит «Товары» результатом запроса к табличной части документа.

Ссылку на документ можно получить из параметра формы «ОбъектыНазначения». Этот параметр доступен внешним обработкам в режиме «ОткрытиеФормы». Параметр «ОбъектыНазначения» представляет собой массив ссылок выбранных документов. В нашем случае мы будем запускать обработку только из формы документа, следовательно, массив объектов назначения будет содержать только один элемент с индексом 0.

Читайте так же:
Виды клавиатур для компьютера

Мы описали заполнение формы исходными данными и переходим к описанию функционала изменения значений табличной части. На данном этапе мы реализуем задачу нашей обработки. Здесь можно изменить количество, цену, ставку налога и т.д. Не забываем, что состав колонок реквизита формы Товары тоже должен соответствовать поставленной задаче. Я выбрал самый простой вариант — изменение цены.

3. Перенос изменений в документ

Переходим к завершающему этапу – перенос изменений в документ. Вот на этом этапе и возникает вопрос: «Как это сделать?». Традиционно перенос данных в документ осуществляется механизмом оповещений, но в нашем случае конфигурация полностью на поддержке с запретом изменений, и нет возможности обработать нетиповую ситуацию. Для решения этой задачи используем свойство управляемой формы «ВладелецФормы». Владельцем формы является форма нашего документа и устанавливается системой автоматически в режиме «ОткрытиеФормы». Через свойство владелец формы может получить доступ к ее основному реквизиту «Объект», в состав которого входит коллекция строк табличной части «Товары». Важно помнить, что свойство «ВладелецФормы» всегда доступно на клиенте открытой формы.

Учитывая данную возможность, обработаем в цикле строки документа и установим новые значения. Для поиска соответствующей строки используем реквизит «НомерСтроки».

Если мы меняем какое-либо числовое значение, то чаще всего необходимо выполнить пересчет связанных значений в строке. Например, изменяя цену необходимо пересчитать сумму, сумму НДС и что-то еще. Для этого лучше использовать типовые процедуры пересчета табличной части. Перенесем из документа в нашу форму типовой обработчик события изменения цены – «ТоварыЦенаПриИзменении».

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

Читайте так же:
Блок питания fox atx 400w

Обращение к экспортным функциям общего модуля

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

Несколько важных моментов:

  • Функция обязательно должна быть экспортной;
  • Если функция расположена в общем модуле с установленным признаком «Глобальный», её вызов осуществляется непосредственно по имени, в противном случае вызов функции должен происходить по схеме «Имя общего модуля». «Имя вызываемой функции».

В качестве примера использования мы возьмем тот же самый запрос к документам поступления и выведем «Сумму документа» прописью в отдельную колонку. Сам запрос мы описывать не будем, перейдем непосредственно к вычисляемым полям:

  1. Создадим новое поле «СуммаПропись»;
  2. Определим его выражение, как на Рис.6; Рис.6
  3. В общем модуле создадим экспортную функцию (Рис.7); Рис.7
  4. Этап настройки отчета пропустим и сразу посмотрим на результат (Рис.8). Рис. 8

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

Удаляйте дубли

Лайфхак, который помогает бороться с внесенными одинаковыми элементами в справочники программы. Чаще всего дубли встречаются в справочниках «Контрагенты» и «Номенклатура» и путают бухгалтера.

Чтобы найти и удалить дубли в программе«1С:Бухгалтерия 8», ред. 3, воспользуйтесь специальной обработкой. Она находится в разделе «Администрирование» – «Обслуживание», гиперссылка «Поиск и удаление дублей».

В открывшемся окне укажите область поиска, заполнив поле «Искать в:».

Выбираем из списка нужную область поиска дублей. Например, проверим справочник «Контрагенты». Выбираем его, затем переходим по гиперссылке в поле «Сравнивать» и задаем правила поиска дублей для выбранного объекта. По умолчанию установлен поиск по наименованию – по схожим словам. Но у контрагента могут быть разные наименования: полное и сокращенное, ИП или Индивидуальный предприниматель, например. В этом случае лучше сопоставлять элементы по другим реквизитам. Например, для справочника «Контрагенты» берем ИНН, КПП, для справочника «Номенклатура» – Артикул. Убираем галочку с реквизита «Наименование», проставляем поиск по ИНН.

Читайте так же:
Имя пользователя и пароль wifi

После того как условия поиска заданы, нажимаем кнопку «Найти дубли».

Программа автоматически составит и отобразит список из повторяющихся элементов.

Если выделим элемент в левом окне справа, появится информация, где его использовали. Места использования дублей можете свернуть по кнопке «Скрыть». Или наоборот – если надо, откройте тот документ, в котором данные дубли использовали. Рядом с элементом увидите количество объектов, где он задействован.

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

Если какой-то из объектов не обрабатываем, то флажок с него снимаем. Если мы изменяем объект, на который программа перенесет все данные с другого объекта при его удалении, то его нужно отметить, нажав кнопку «Отметить как оригинал».

Нажимаем на кнопку «Удалить дубли». Программа перенесет все объекты, где был элемент-двойник, на отмеченный объект-оригинал, тем самым объединив их.

По этой схеме можно продолжить искать дубли в других местах программы, нажав на кнопку «Новый поиск». И таким нехитрым способом можно очистить справочники от элементов-двойников. Всех помеченных двойников программа удаляет обычным способом, через раздел «Администрирование» – «Сервис» – «Удаление помеченных объектов».

Задача: Нужно все номера реализаций по одному товару вставить в одну ячейку.

Что-то вроде: номенклатура | кол-во | 001, 002, и т.д. |

Будем использовать запрос к регистру накопления «РеализацияТМЗ».

Регистру накопления «РеализацияТМЗ» существует как в конфигурации Бухгалтерия, так и в конфигурации Управление торговым предприятием (УТП). Узнайте, как в конфигурации УТП установить свойство «Услуга» в элементе справочника «Номенклатура». Поэтому, после скачивания, для проверки его работоспособности вы можете запускать этот отчёт в обеих конфигурациях.

Читайте так же:
Живые обои на главный экран компьютера

Что еще?

UPD 07.07.2021 Добавлена реализация для тонкого клиента на управляемой форме без использования модальности.

1) Никто не запрещает размещать на форме стандартные настройки компоновщика настроек.

2) Можно добавлять в схему СКД любую другую информацию (с помощью других наборов данных), которая не содержится в табличной части редактируемого объекта, но которая необходима для принятия решения при вводе данных (например свойства номенклатуры).

3) Группировка данных в таблице также может быть сколь угодно сложной, в зависимости от решаемой задачи.

4) Можно и нужно использовать всю мощь СКД и возможностей условного оформления.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector