Программирование в 1С для всех
В предыдущей статье мы узнали, как настраивать и конфигурировать табличные части объектов 1С 8.3. В этой статье мы изучим некоторые вопросы программной работы с табличными частями 1С.
Заполнение табличной части 1С 8.3
Очень часто встречается задача заполнить табличную часть какими-нибудь значениями, например результатом выполнения запроса. Для демонстрации реализуем пример, в котором выполняется заполнение табличной части. Сделаем небольшую учебную задачу: будем заполнять табличную часть документа всей номенклатурой, которая не помечена на удаление. Количество при этом будет равно 1. Для заполнения табличной части документа нам необходимо работать с одноименной таблицей реквизита Объект, который является основным реквизитом управляемой формы.
Поскольку по условиям задачи, необходимо отобрать всю не помеченную на удаление номенклатуру, то оптимально это сделать при помощи запроса, в котором я буду получать все не помеченные элементы справочника номенклатура. Я создал команду, при выполнении которой будет заполняться табличная часть, и разместил её на форме.
Исполнение команды будет выполняться в серверном контексте, поскольку объект Запрос не работает в клиентском контексте на тонком клиенте.
При обходе запроса, я использую метод Добавить табличной части объекта (вообще это метод объекта, который имеет тип ДанныйФормыКоллекция, именно в этот тип преобразуется табличная часть документа-объекта, при создании на сервере). Данный метод является функцией, которая создаёт и возвращает новую строку.
Обратите внимание, поскольку при обходе запроса и заполнения новой строки, я использую метод ЗаполнитьЗначенияСвойств, то поля в запросе должны называться так же, как и поля табличной части.
Очистка табличной части документа 1С 8.3
Если мы реализуем данный код, то он будет не совсем корректен: каждый раз при выполнении этого кода будут добавляться новые строки, а вполне возможно, что пользователю старые строки не нужны. Поэтому, будем очищать имеющиеся строки, перед добавлением новых строк. Для этого воспользуемся методом Очистить объекта СписокТоваров, который имеет тип ДанныйФормыКоллекция.
После выполнения этого метода вся табличная часть будет очищена.
Текущая строка табличной части 1С 8.3
В процессе работы может возникнуть необходимость отработать текущую строку табличной части, т.е. ту строку, которая в данный момент выделена.
Например, может возникать ситуация, что мы редактируем какое-нибудь поле текущей строки таблицы на форме, и нам нужно, чтобы было пересчитано другое поле (или несколько полей) этой текущей строки. Например, мы изменяем цену (или количество) нашей табличной части, и необходимо, чтобы сумма автоматически была пересчитана.
Для решения данной задачи нужно воспользоваться свойством ТекущиеДанные элемента с типом ТаблицаФормы, который соответствует нужной табличной части. Свойство ТекущиеДанные возвращает значение полей текущей строки.
Для того, чтобы отработать изменение текущего поля цены, создадим обработчик события ПриИзменении этого поля.
В этом обработчике напишем код, который будет пересчитывать значения полей текущей строки табличной части.
Ещё пример: я создал команду, которая должна увеличивать количество в текущий строке табличной части в два раза и пересчитывать сумму. Эта команда размещена в командной панели таблицы и имеет следующий код:
Теперь доработаем этот пример: после увеличения текущей строки будем сдвигать текущую строку на строку вниз. Для этого допишем предыдущий код:
В этом коде мы получаем идентификатор текущий строки при помощи свойства таблицы управляемой формы ТекущаяСтрока, и если мы не выходим за приделы таблицы, то сдвигаем нашу текущую строку на один шаг вниз.
Также при помощи текущей строки можно находить аналогичную строку в соответствующей табличной части основного реквизита формы Объект, которую также можно изменять (строка на форме тоже изменится автоматически). Мы ранее сделали пересчет суммы при изменении цены, теперь сделаем пересчет суммы при изменении количества, но напрямую через реквизит Объект.
В этом коде мы используем метод НайтиПоИдентификатору переменной Объект.СписокТоваров, которая имеет типа ДанныйФормыКоллекция, этот метод получает элемент коллекции по указанному идентификатору. Если этот элемент найден, то мы можем с ними работать, причем данные на форме изменяться автоматически.
Обход табличной части 1С
Часто возникают задачи обойти табличную часть и изменить какие-либо значения в столбцах. В предыдущих примерах мы изменяли текущую стоку таблицы, теперь реализуем пример, когда нужно изменить все строки. В этом случае нет необходимости обращаться к элементам формы, можно работать напрямую с основным реквизитом Объект.
Остальные статьи по теме конфигурирования в 1С:
Более подробно и основательно конфигурирование в 1С дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Удалить формат строк табличного документа
В интерфейсе поля формы, или редактора Табличного документ в контекстном меню есть пункт «удалить формат строк». Действия этой кнопки можно повторить программно?
Бывает что на выходе получаем табличный документ, в котором содержаться области, со своими форматами строк. Иногда у пользоватлей при редактировании такого табличного документ возникают нюансы..
В довесок еще вопрос. Как можно определить группы областей со своим собственным форматом строк программно? ведь такие области могут находится не сплошняком а с разрывом.
2. Копирование области в пустую часть, и удаление области с собственным форматом
Пример:
Спасибо всем за помощь! Надеюсь это поможет кому-либо не потратить много времени на эту маленькую фишку. И привет всем кто пришел сюда после бесполезных ответов на данный вопрос при поиске в интернете
PS
Можете спросить а для чего это вообще может понадобиться.
1. Когда предоставляешь пользователю редактировать документ, а он при этом сформирован внешними функциями или отчетом, то иногда пользователь может недоумевать, почему «плывут колонки», или почему я не могу вставить нормально строки.
2. При чтении в табличный документ например из эксель, листы эксель читаются именованными областями, каждая из которых имеет собственный формат строк. А для корректного, последующего чтения данных из табличного документа нужно как раз что бы все было видно достаточно прозрачно.
3. При сохранении табличного документа в эксель, что бы не добавлялись лишние колонки в самом эксель.
Очистка табличных частей справочников и документов
Всем доброго времени суток, коллеги!
1. Указательный палец правой (левой) руки + Delete. Старая добрая классика, средства на все времена. За 30-40 секунд можно очистить даже очень (оооччень) большой документ строк на 1000.
2. В некоторых конфигурациях (УПП, КА, УТ 10.3) есть кнопка «Изменить» в командной панели табличной части (Поступление товаров и услуг, Реализация товаров и услуг, Требование-Накладная и т.д.). По нажатию данной кнопки происходит вызов формы «Обработка табличной части», в которой есть необходимый пункт (см. рис.1). Вполне рабочий способ, но, во-первых, такая кнопке есть далеко не везде , во-вторых, все-таки нужно совершить много движений мышкой.
Поэтому решил восполнить пробел и написать простейшую обработку, состоящую из 1 (одной) строчки кода:
Данная обработка подходит для типовых конфигураций на 1С 8 (в режиме обычного приложения) и добавляет в те справочники и документы, для которых возможно подключение обработок заполнения табличных частей (для каждой конфигурации они могут различаться) кнопку «Очистить» в подменю «Заполнить«. Если такого подменю нет, то оно создается (см. рис.2)
Краткие инструкции по подключению:
2. Добавить новый элемент.
3. По кнопке «Заменить файл внешней обработки» открыть скаченный файл.
4. В табличной части «Принадлежность обработки по заполнению табличной части» выбрать нужный документ или справочник, потом табличную часть.
5. В колонке «Представление кнопки» можно дать наименование, например, «Очистить».
UPD. Добавлен вопрос о необходимости очистки табличной части (во избежании трагических случайностей )
Надеюсь, это будет полезно в повседневной работе.
Очистка всех табличных частей документов и справочников
Сделанно на базе типовой Групповой обработки документов и справочников.
После отбора документов или справочников
нажмите кнопку «ОчиститьВсеТЧ».
внутри обрабоки закоментирован код по очистке полей «Контрагент, договор, комментарий»
Скачать файлы
Специальные предложения
Обновление 05.02.14 10:08
Код открыт Не указано
См. также
Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо
04.11.2018 53622 527 Eugen-S 35
Универсальная сверка данных между разными базами 1С через веб-сервис
21.07.2021 2987 9 METAL 2
Удалятор присоединенных файлов (для БСП)
Помощник анализа/выявления «мусорных файлов», лёгкой пометки и удаления.
08.07.2021 3798 15 Igorro82IT 11
ПОЛНОЕ удаление лишних организаций и связанных с ними данных
Обработка предназначена для удаления лишних организаций и связанных с ними данных (документами, записями в регистрах сведений, подчиненных справочников). Эта обработка является немного переделанной от автора Ант10 (https://infostart.ru/public/696618/), отличатся от оригинальной версии возможностью выбора сразу нескольких организаций. Удобна, когда таких организаций много (в частности, задублированных организаций). Работает только с управляемыми формами, тестировалась в типовой конфигурации 1С: «Бухгалтерии предприятия 3.0» релиз 3.0.88.28. На платформе 1С 8.3.18.1334.
11.03.2021 4689 119 Kuzya_brаtsk 8
Пометка на удаление неиспользуемых элементов справочников и документов Промо
В ходе работы в программе в ней зачастую накапливается «мусор». Данная разработка может помочь убрать его. (обычные или управляемые формы)
02.02.2010 40893 723 AnryMc 53
Превращение доработанной конфигурации в типовую или исправление ошибки «Имеются записи с одинаковыми измерениями»
Помогает решить проблему связанную с дублями в регистрах сведений при возвращении к типовой конфигурации. Ошибка «Имеются записи с одинаковыми измерениями».
12.02.2021 8569 79 pyrkin_vanya 36
Если в базу загружено большое количество изображений, картинок, фото товаров, размером более 2-3МБ, то в базе будут сильно тормозить все процессы, связанные с чтением-передачей файлов изображений: формирование прайса, отчетов с картинками, выгрузка изображений товаров на сайт и т.д. Данная обработка позволяет провести оптимизацию (уменьшение размера) загруженных картинок в базу 1С любой конфигурации на основе БСП >= 2.3 стандартными средствами 1С, сохраняя при этом достаточно хорошее качество сжатых картинок. Проверено на релизе УТ 11.4.11.71, для обработки понадобится также версия Платформы 1С >= 8.3.14.
08.03.2020 12315 64 1sig 28
Свертка базы и очистка таблиц
Обработка написана с использованием БСП. Встраивается как внешняя. Работает в фоне. Позволяет средствами SQL очищать выборочно таблицы с настройками, заданными привычным образом через отбор СКД.
05.03.2020 9103 44 YAGolova 7
Очистка регистрации обмена Промо
Данная обработка предназначена для очистки узла. Для очистки необходимо указать период,организацию.
19.09.2017 21388 9 serg-lom89 0
Свертка БД 1С: обрезка до выбранной даты средствами MS SQL
Внешняя обработка, позволяющая произвести анализ размера БД и грубую обрезку данных до выбранной даты средствами MS SQL. Управляемые формы, 1С:Предприятие 8.3 (8.3.9.1818).
15.11.2019 22820 267 dmitrydemenew 42
Очистка базы данных 1С от данных по организациям прямыми SQL-запросами к СУБД
Работа с помощью прямых запросов в случае, когда нельзя, но очень необходимо.
20.09.2019 18026 107 nomad_irk 94
Удаление документов для любых баз на управляемых формах
Удаление и распроведение документов для любых баз на УФ.
13.09.2019 11645 147 Rustig 33
Удаление помеченных объектов, замена ссылок. Обычное и управляемое приложение. Не монопольно, включая рекурсивные ссылки, с отбором по метаданным и произвольным запросом Промо
Обработка удаления помеченных объектов с расширенным функционалом. Работает в обычном и управляемом приложении. Монопольный и разделенный режим работы. Отображение и отбор по структуре метаданных. Отборы данных произвольными запросами. Копирование и сохранение отборов. Удаление циклических ссылок (рекурсия). Представление циклических в виде дерева с отображением ключевых ссылок, не позволяющих удалить текущий объект информационной базы. Удаление записей связанных независимых регистров сведений. Групповая замена ссылок. Индикатор прогресса при поиске и контроле ссылочности.
31.10.2016 62897 757 m..adm 227
Быстрое удаление данных по организации, используя ADO
Время от времени возникают вопросы на форуме Инфостарта по сабжу. Данная обработка решает данную задачу.
12.08.2019 9934 56 Fox-trot 30
Данная обработка просто хороший, удобный удалитель выбранного объекта через «ОбменДанными» с кучей дополнительных возможностей. Выгода использования данной обработки особенно ярко проявляет себя, когда у вас стоит подписка на события или другой код препятствующий удалению, но вам абсолютно необходимо удалить данный объект ввиду возможности его случайного использования. И вам нет необходимости выходить из режима 1С:Предприятия, входить в конфигуратор, менять отлаженный код блокировок и подписок на события. Таким образом осуществляется «горячее» удаление объекта.
17.06.2019 10226 30 AlexandrSmith 0
Удаление данных по организации в базах, ведущих учет по нескольким организациям. БП 3.0, ЗУП 3.1
При необходимости разделить данные в базах, где ведется учет по нескольким организациям, данная обработка поможет очистить ненужную информацию по организации/организациям. Работает в конфигурациях БП 3.0 и ЗУП 3.1.
03.04.2019 14516 308 SanchoD 35
Обнуление остатков регистров бухгалтерии и накопления Промо
Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.
19.11.2018 35226 431 morozov.sv 55
Восстановление настроек плана счетов и очистка некорректных рабочих счетов в БГУ 1.0
В плане счетов в БГУ 1.0 есть возможность восстановить настройки по умолчанию. Но при наличии некорректных рабочих счетов, восстановление настроек не выполняется. При этом даже нет информации, в каком именно счете проблема. Данная обработка находит некорректные рабочие счета и удаляет их.
04.03.2019 22599 230 Sashares 36
Вы могли и не знать, но у Вас в базе может быть несколько сотен тысяч записей о производительности системы. А появились они там благодаря встроенной в БСП подсистеме «Оценка производительности». И думаю что далеко не каждый из Вас реально собирается оценивать производительность своей системы. Специально для тех кто, как и я считает, что ему абсолютно не нужны все эти записи в базах и была создана эта обработка.
31.10.2018 26804 254 1c.pro.fun 27
Перенос организации в отдельную базу, полная очистка базы от данных организации (версия от 23.07.2021)
Данная обработка позволяет удалить организацию и все связанные с ней данные – документы, элементы справочников, записи регистров сведений. Обработка полезна для выделения организации в отдельную базу. Доработано для ЗУП 3.1, УТ 11.4, возможно других
14.08.2018 23346 437 serge_msk 70
Очистка периодических регистров посредством T-SQL (удаление записей, кроме среза последних) Промо
Обработка для ленивых. Составит вместо Вас запрос для SQL, который удалит все не актуальные записи (т.е все, кроме среза последних)
22.06.2018 20650 21 Alexander.Shvets 9
Свертка 1С: ЗУП 3
Свертка 1С: Зарплата и управление персоналом 3 по трем регистрам. Когда у всех полетел НДФЛ в начале 2018 года, решили сделать обработку свертки ЗУП 3 с сохранением данных о среднем заработке для расчета пособий.
11.07.2018 23019 173 Bortkevich 29
Удаление движений непроведенных документов. УФ.
Обработка помогает в закрытии отчетных периодов в программах 1С.
02.07.2018 14264 93 PSMNN 2
Помощник удаления и очистки объектов
04.06.2018 18064 101 Kutuzov 24
Корректировка остатков регистров накопления (обычные и управляемые формы) Промо
Внешняя обработка, предназначенная для удобного и быстрого исправления остатков регистров накопления (посредством автоматического ввода документов «Корректировки записей регистров», «Операция», содержащих движения, приводящие существующие остатки к желаемым). Позволяет корректировать и обнулять по аналитике и суммам остатки регистров учета товаров, партий, взаиморасчетов, налогового учета по НДС, РАУЗ, и др.
14.01.2012 87636 1759 stvorl 76
Удаление данных средствами SQL, теория и практика
25.04.2018 26429 175 METAL 37
Удаление справочников и документов без проверки ссылочной целостности
Обработка предназначена для удаления без проверки ссылочной целостности.
14.03.2018 14340 89 SPARTANIC 19
Очистка базы данных от данных по организации
Обработка генерирует SQL-скрипт, который очищает базу данных от документов выбранной организации. Проверялась на конфигурации Управление производственным предприятием на платформе 8.3. Но в принципе универсальная для стандартных конфигураций на платформе 8.3.
23.01.2018 22533 146 mugr 26
Переход с УСН на ОСНО. Формирование остатков НУ и данных по регистру затрат УчетЗатратРегл (РАУЗ) Промо
30.01.2014 32173 8 buy_sale 7
Удаление данных напрямую в SQL
Порой так и хочется грохнуть что нить в скуле, но наталкиваешься на отсутствие понятных и функциональный инструментов. Вроде как что то и есть, но явно писанное для каких то конкретных простых целей. И так очередное творение в данной тематике. Особенности: удаление порциями, отображение готового текста запроса, отбор данных с помощью СКД (в отборе учитываются составные типы и обращения через точку).
08.07.2017 20450 130 denacid 32
Создание первоначального образа с файлами РИБ или быстрая очистка базы от документов и движений по регистрам
В «большой» базе штатными средствами создать первоначальный образ узла не получается по причине «недостатка памяти на сервере»? А способы, описанные в статье https://its.1c.ru/db/metod8dev/content/2277/hdoc не подходят? ИЛИ Удаление всех документов или свёртка базы занимает продолжительное время?
06.06.2017 27270 73 Dima_ 9
Просмотр и очистка регистра сведений (управляемые формы)
Обработка предназначена для очистки регистров сведений (как независимых, так и подчиненных регистратору), работает под управляемыми формами. Реализован предварительный просмотр удаляемых данных.
09.05.2017 21354 361 stone_evil 24
Очистка регистров накопления, сведений, расчета или бухгалтерии Промо
Очистка регистров накопления, сведений, расчета или бухгалтерии (обычная и управляемая форма)
25.12.2009 69100 1241 sebe 20
Что мешает удалению объектов?
Обработка, позволяющая просмотреть цепочки объектов (как ссылочных, так и регистров), препятствующих удалению помеченных на удаление объектов. Платформа 8.3, обычные формы, управляемые формы, интерфейс такси, возможность работы в Web.
20.12.2016 21835 124 Alxby 17
Задвоились предопределенные элементы справочников? Выход есть!
Дублирование предопределенных элементов справочников может произойти как по причине того, что при обмене данными в режиме загрузки уникальность предопределенного элемента в пределах области информационной базы не проверяется, так и при объединении/обновлении конфигураций. При попытке переименовать, или, например, пометить на удаление 1С показывает сообщение «Предопределенный элемент не уникален». В этой статье мы напишем обработку, которая позволит избавиться от дублей предопределенных элементов справочника.
02.11.2016 26898 114 Luchik 8
Удаление неиспользуемых элементов справочника (простые и управляемые формы)
Обработка предназначена для удаления неиспользуемых элементов выбранного Вами справочника. Обработка конфигурационно-независима. UPD. Расширены возможности обработки
02.08.2016 21042 80 roma_semenov79 6
Удаление организаций из базы Промо
У меня возникала потребность в удалении организаций и их следов из базы. Стандартными средствами этого не сделать. Кому необходимо сделать то же самое, это отличный вариант. Обработка проста и эффективна.
19.06.2013 21660 59 IceEvgen 11
Удаление документов по организациям для 1С:Бухгалтерия Предприятия 3.0 и 2.0 (управляемые и простые формы)
31.07.2016 33561 385 Krasnyj 52
Ошибка «Записи регистра сведений стали неуникальными»
При обновлении конфигурации периодически может возникать ошибка «Записи регистра сведений стали неуникальными» или «Имеются записи с одинаковыми измерениями». Что она означает и как ее исправить.
21.07.2016 102210 1121 ekaruk 50
Удаление помеченных объектов с отбором по метаданным
Это доработанная обработка с отбором по метаданным. По итогу общее время в сравнении со стандартной обработкой сокращено, если необходимо очистить только несколько типов документов/справочников.
06.04.2016 28156 136 endym 7
Универсальный редактор реквизитов объектов. Мультиобработчик Промо
28.12.2011 185218 8938 StepByStep 423
Зачистка ссылок на документы после свертки. 1С:Бухгалтерия 3.0
После стандартной свертки не удаляются документы из базы? Вы уже заметили, что они абсолютно во всех операциях по вводу начальных остатков? Эта обработка поможет решить вопрос. Все документы расчетов в виде старых документов будут заменены на новый документ расчетов, и Вы сможете избавиться от ненужных старых документов!
05.04.2016 24578 80 katerinaUniv 8
[БП 3.0] Свертка БП 2.0 или БП 3.0 документами «Ввод начальных остатков» в БП 3.0 beta
03.04.2016 62288 1062 Alex_E 498
Ещё один вариант свертки регистров учета НДФЛ (для ЗБУ/ЗКОУ/ЗКМУ ред. 1, ЗУП ред. 2.5)
С появлением формы 6-НДФЛ вопрос правильного ведения исчисленного/удержанного/перечисленного НДФЛ встал не просто остро, а сверхостро! Поможем расчетчикам чем сможем.
10.03.2016 39136 283 GlebHappy 50