Наследование свойств элементов, или Как пользователь может сломать вашу форму

Публикация № 1358364 12.01.21

Разработка - Практика программирования

ТолькоПросмотр Доступность Видимость УФ Взлом Ошибка Группа Страница Кнопка Элемент

В 1С можно установить свойства ТолькоПросмотр, Доступность и Видимость не только на элементы формы, но и на группы элементов. Но стоит ли так делать? Оказывается, пользователь может обойти запреты, которые установлены на папку. Об этом подробнее в видео.

Данная статья — текстовый вариант свежего ролика по теме

 

ТолькоПросмотр, Доступность, Видимость. Даже самый маленький разработчик 1С сразу понимает, что это, скорее всего, свойства элементов формы. Свойства, которые часто управляются программно. И как же удобно, что можно установить значение свойства сразу на группу, тем самым распространив его на все подчиненные элементы. Это будет легче, чем в коде указывать множество установок свойств элементов, а результат такой же.

Или же нет? Однажды я засомневался в истинности этого утверждения.

 

А как он это сделал?

— Говорит, что просто изменил поле.

— В конфигураторе вижу, что колонка недоступна.

— Я под своим пользователем менять не могу. А он может.

 

Довольно обычный диалог, свидетелем которого, думаю, становились многие. А может и участником. Ведь работа программиста состоит не только в написании кода, но и в исправлении ошибок, которые этот код породил.

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

 

— Может у тебя где-то свойство перезатирается?

— Да его программно-то и не устанавливаю нигде. Оно на самой форме установлено.

 

И вот тут становится уже интереснее. Как оказалось, на форме действительно нигде не изменялось свойство поля. И поле было недоступно пользователю. Но не совсем.

Для имитирования этой ситуации, создадим простую обработку. В форму добавим реквизит "ТаблицаДанных". Пусть в этой таблице будет две доступные и две недоступные пользователю колонки. Так их и назовём.

 

 

Создадим элементы формы и разнесём доступные и недоступные колонки по двум группам.

 

Хорошо. А теперь, собственно, снимем доступность с папки "Недоступные колонки"

 

Открываем теперь эту обработку. Добавим новую строчку, заполним доступные колонки и проверим, что нельзя изменить недоступные.

 

На первый взгляд всё хорошо. Но может ли пользователь без каких-либо сложных действий обойти запрет? Оказывается, что может. Для этого воспользуемся волшебной кнопкой в командной панели формы. "Изменить форму".

 

А теперь вынесём недоступную колонку за пределы своей папки. Пусть она лежит отдельно.

 

Да, именно так. Теперь свойства папки не влияют на эту колонку. А это значит, что мы можем изменить её содержимое.

 

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

 

Как удобно, что 1С сохраняет пользовательские настройки формы и наше "недоступное" поле сразу при открытии становится доступным =)

Теперь сделаем то же самое и с вторым нашим полем.

 

Верно - ТолькоПросмотр ведёт себя точно так же.

 

И это работает не только с установленными "вручную" свойствами, но и заданными программно. И не только с группами, но и со страницами и даже подменю.

Добавим кнопку на форму и поместим её в группу с отключенной доступностью.

 

Сохранимся и откроем обработку. Да, кнопка "серая".

 

Повторим тот же фокус - вынесём кнопку из группы:

 

Поздравляю - мы получили доступ к закрытому для нас функционалу!

 

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

 

Для примера возьмём демо-базу свеженького релиза УТ 11.4.11.104.

Откроем документ "Выданная доверенность" со статусом "Выдана".

 

Как мы видим, данные заблокированы. Нажмём же "Изменить форму" и вынесем поле "Действует до" отдельно

 

Ну вот - мы можем его редактировать. Изменим дату и проведём документ. Ура, мы сделали своё грязное дело.

 

И самое "приятное", что теперь в каждом документе поле будет доступно. Потому что платформа сохранила пользовательские настройки формы. И, если пользователь без злого умысла "перенёс" куда-то поле или кнопку (просто потому что ему так показалось удобнее), то он может и не догадываться, что это самое поле не должно быть доступно. Он просто открывает форму. Видит, что поле или кнопка доступны. И нажимает.

Возьмём ещё один похожий пример. На этот раз документ "Чек ККМ на возврат". Откроем документ, у которого заблокирован номер и дата. И вытянем их тем же методом из шапки:

 

Всё, теперь мы можем изменить номер и дату документа. Поздравляю!

 

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

 

— И как теперь это будем поправлять?

— У меня есть пара вариантов

 

Да, если вы один из тех разработчиков, который хочет быть на все 146% уверенным, что ваш инструмент никто не сломает, то:

 

Устанавливайте запрет на сами элементы, а не только группы

Так вы точно будете знать, что поле будет в нужный момент недоступно.

Если же в группе много элементов, их состав периодически меняется, и не хочется писать кучу кода, то есть второй вариант.

 

Задайте свойство группы "РазрешитьИзменениеСостава": Нет

Тогда пользователь не сможет вытащить элемент из неё.

Вы можете подумать, что это произойдёт только с какими-то гипотетическими злыми пользователями, которые специально разыскивают дыры в программе, чтобы при их помощи создавать проблемы разработчикам. Но, как я уже говорил выше, это возможно по вине "случайности". Какой-то особо умелый пользователь перенёс колонку таблицы так, как ему показалось удобнее. Перенёс кнопку из подменю на основную командную панель, потому что ему лень искать её каждый раз. И так далее. А в результате — код разработчика сломан. Так что лучше уж обезопасить себя. Хотя бы в особо важных случаях.

И напоследок, покажу ещё один интересный пример в УТ. Ещё раз перейдём в форму списка "Доверенность выданная". И откроем документ с типом "На получение ДС". Как видно на скрине, у такого документа не отображается табличная часть "Товары".

 

Теперь откроем документ с другим типом. Табличная часть на отдельной странице.

 

Перейдём в "Изменить форму" и вынесём таблицу за пределы всех групп и страниц.

 

Хорошо, а теперь закроем форму и вернёмся к прошлому документу без табличной части. Теперь табличная часть видна и её можно редактировать:

 

 

Как вы могли догадаться, всё по той причине, что разработчики скрывают не табличную часть, а всю страницу целиком. 

Таким образом пользователь может сломать ТолькоПросмотр, Доступность и Видимость элементов. А может и что-то ещё...

 

Понравилась статья? 

Не будьте равнодушными! Поставьте лайк плюс, оставьте комментарий. Ещё много в 1С неизведанного!

В этом видео я наглядно показываю всё то, что говорится в статье: Наследование свойств элементов, или Как пользователь может сломать вашу форму

И переходите к другим публикациям:

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Senator_I 13 12.01.21 15:29 Сейчас в теме
"Лайк" статье поставил (не люблю видео смотреть), тестировать разработки станет веселее! )))
2. MVK80 12.01.21 19:49 Сейчас в теме
(0) Прикольно, особенно с таблицей формы в выданной доверенности! Ушел писать процедуру в общем модуле которая рекурсивно свойства потомков ставит такие же как и у родителя в рамках двух исследованных свойств: ТолькоПросмотр и Доступность. :) Не будем жестоки к пользователю (не ставим РазрешитьИзменениеСостава в Ложь). Пусть пользователь извращается как хочет с расположением нередактируемых элементов на форме. А случае если предполагается управлением свойства Видимость надо устанавливать РазрешитьИзменениеСостава в Ложь изначально наверное.
3. MVK80 12.01.21 20:23 Сейчас в теме
(2), хотя это не спасет если пользователь в момент доступности полей перенесет их в другую группу. Получается что только РазрешитьИзменениеСостава поставкой в Ложь изначально поможет. Либо явно назначать свойства всем полям входящим в группу.
24. Hatson 463 19.01.21 09:19 Сейчас в теме
(2)
Пусть пользователь извращается как хочет с расположением нередактируемых элементов на форме


Я считаю, что 1С вообще зря сделали такую возможность и вот почему:

Как они себе представляют работу поддержки крупных инф систем? Как должны выглядеть внутренние инструкции и регламенты по пользованию различных форм документов и обработок, если каждый пользователь перекроил всё под себя и зачастую не сознательно, а по случайности??
Да, там есть кнопка "вернуть всё как было" - тогда тем более зачем нужны все эти свистелки и перделки с элементами формы, если всё равно рано, или поздно придется всё вернуть в исходное состояние??
Известно, что чем жестче ограничения, тем стройнее и масштабнее система и легче и эффективнее её сопровождение и разработка.
25. MVK80 19.01.21 09:25 Сейчас в теме
(24), ну я думаю опытный пользователь разберется и так. Если он под себя все настроил значит он понимает функционал и сделал себе удобней для работы. Как, пример, вынес какие-то команды из еще в видимую часть формы, если часто ими пользуется. А неопытный начнет с первого пункта инструкции, где будет написано как все вернуть к настройкам по умолчанию. Типа будет текст "если вы не видите какого-то элемента или кнопочки о которой говорится в инструкции, не спешите звонить в поддержку, начните со сброса настроек формы к значениям по умолчанию.

Представляете, что будет, если за каждым вариантом отчета или изменению формы по минимуму пользователь начнет обращаться к программистам?
4. muskul 13.01.21 04:58 Сейчас в теме
Надо запомнить. Иногда нужно поломать функционал 1с со своими запретами там где не надо
nekit_rdx; YanTsys; +2 Ответить
10. rovenko.n 13.01.21 10:56 Сейчас в теме
(4)А потом ошибки исправлять, там, где они появились?
nekit_rdx; enter_123; +2 Ответить
5. mikl79 114 13.01.21 07:04 Сейчас в теме
спасибо, стоит задуматься на будущее при написании кода
6. Dragonim 129 13.01.21 07:40 Сейчас в теме
Описанное поведение очень логично, но не очевидно. За статью большое спасибо.
nekit_rdx; Дмитрий74Чел; shard; Stylo; rovenko.n; Drivingblind; +6 Ответить
7. DmitryUfa 13.01.21 07:46 Сейчас в теме
Спасибо! Буду иметь ввиду.
8. anosin 28 13.01.21 09:37 Сейчас в теме
поправят в следующем релизе платфомы? ;)
9. paybaseme 22 13.01.21 10:06 Сейчас в теме
Спасибо за статью, очень полезная информация!
11. the1 918 13.01.21 11:25 Сейчас в теме
Спасибо за неочевидную информацию. Не баг, а фича) Придется делать так в некоторых случаях
	ГруппаФормы = Элементы.НедоступнаяГруппа;
	Для Каждого Элемент Из ГруппаФормы.ПодчиненныеЭлементы Цикл
		Элемент.Доступность = ГруппаФормы.Доступность;
	КонецЦикла;
В особых случаях еще и рекурсивно. Возникает правда вариант, что юзер перенесет в недоступную группу элемент из другой группы, и тогда уже он станет недоступным) Вопросы, вопросы))
12. zqzq 21 13.01.21 11:45 Сейчас в теме
(11)
Элемент.Доступность = ГруппаФормы.Доступность;

Если у группы доступность=истина, а у элемента нет, опять будет проблема :)
13. SlavaKron 13.01.21 12:18 Сейчас в теме
Был бы счастлив, если бы у меня были такие пользователи, которые смогли бы до этого догадаться.
nekit_rdx; DrAku1a; _qqq; +3 Ответить
14. Kolunya 7 13.01.21 13:03 Сейчас в теме
Мы своим юзерам скрываем "Изменить форму" .. и много чего еще... ))
ибо пытливый ум от скуки может породить намного больше проблем...
15. Stylo 13.01.21 13:19 Сейчас в теме
И это мы узнаЁм только в январе 2021 года. Вот так поворот. Спасибо за статью!
nekit_rdx; +1 Ответить
18. SiAl 74 13.01.21 14:50 Сейчас в теме
(15)
поворот. Спасибо за статью!

Я лично никогда не использовал эти настройк у групп элементов, потому что сразу было понятно, что юзер по умолчанию может изменить форму и состав элементов формы в интерфейсе "Такси". Поэтому только настройик самих элементов, благо можно устанавливать настройки сразу у нескольких элементов, выбрав их через зажатый Control.
16. dabu-dabu 179 13.01.21 13:48 Сейчас в теме
Всегда считал, что возможность пользователю самостоятельно себе изменить форму - это зло
bulpi; Serega-artem; +2 Ответить
19. SiAl 74 13.01.21 14:51 Сейчас в теме
(16)
зователю самостоятельно себе изменить

Нет, это благо. Зло - это ограниченный шаблонами разум недоразработчиков.
KoC_one; SlavaKron; YanTsys; +3 2 Ответить
17. user1503726 13.01.21 13:57 Сейчас в теме
А на этот функционал (изменение управляемых форм) есть возможность назначать пользовательские права? Как часть роли (хотя их и так много).
20. Sander80 82 14.01.21 22:55 Сейчас в теме
(17) сохранение настроек, или как-то так, в глобальном разделе ролей
21. shard 260 15.01.21 00:30 Сейчас в теме
"можно сделать защиту от дурака, но только от неизобретательного"...
nekit_rdx; KoC_one; zqzq; bulpi; +4 Ответить
22. bulpi 186 15.01.21 14:33 Сейчас в теме
Проще всего на самой форме в конфигураторе снять флажок "Разрешить изменять форму". Ибо не фиг.
23. Terve!R 18.01.21 08:54 Сейчас в теме
На практике таких умных пользователей не бывает)
Им бы СКД отчет научиться как-то настраивать, а уж в "Изменить форму" они никогда не лезут)
Но лайк за полезную информацию)
Оставьте свое сообщение

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

Практика программирования v8 Бесплатно (free)

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020    3954    Eugen-S    21    

Полезные примеры СКД, ч.2

Практика программирования v8 v8::СКД Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    10098    Neti    8    

Неочевидные нюансы записи управляемой формы

Практика программирования v8 v8::УФ Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Разберем несколько нюансов записи управляемой формы.

02.04.2021    11818    SeiOkami    54    

Обзор полезных методов БСП 3.1.4

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

25.03.2021    37515    rayastar    51    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    85119    Serginio    115    

Звуковое управление в 1С 8.3

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    6911    velemir    31    

Флаг "Использовать ПОЧТИ всегда", или Нюанс динамических списков

Практика программирования v8 Платформа 1C v8.2 1cv8.cf Бесплатно (free)

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

11.02.2021    5747    SeiOkami    36    

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

Практика программирования v8 ERP2 БУ Бесплатно (free)

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    10274    BuriyLesha    10    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    40878    unichkin    74    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    8603    comol    31    

Сервис регистрации ошибок 1С (пример создания)

Практика программирования v8 1cv8.cf Бесплатно (free)

Разработаем вместе простой сервис регистрации ошибок для 1С на самой 1С =)

13.10.2020    6086    SeiOkami    22    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

30.08.2020    19472    quazare    34    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    35826    tormozit    106    

Новое отображение ошибок в 1С

Практика программирования v8 1cv8.cf Бесплатно (free)

Рассмотрим развитие механизма отображения ошибок в 1С (начиная с 8.3.17)

10.08.2020    17575    SeiOkami    35    

Серверные вызовы, которые нельзя вызывать

Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    9097    SeiOkami    34    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    82617    tormozit    131    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    73134    user5300    19    

Как ограничить поля отбора в динамическом списке и ничего не сломать

Практика программирования v8::УФ 1cv8.cf Бесплатно (free)

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

06.05.2020    8378    SeiOkami    3    

Ограничения полей, или как обмануть СКД?

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    15487    SeiOkami    41    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    54044    tormozit    51    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    63221    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    42430    John_d    22    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    34073    kuzyara    38    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    50813    tormozit    74    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    23732    YPermitin    62    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    12060    Sibars    19    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

07.10.2019    39145    HostHost    41    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    17897    m-rv    3    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    51877    Yashazz    56    

О программе Postman для тестирования API и для чего она нужна 1С-нику

Практика программирования Программное обеспечение (software) v8 Бесплатно (free)

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

24.09.2019    19667    budidich    31    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    98318    rpgshnik    75    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    23158    m-rv    18    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    75815    ids79    55    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    45431    YPermitin    25    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

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

03.09.2019    29987    YPermitin    81    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    36528    m-rv    23    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    44457    ids79    22    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    147127    ids79    75    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019    59176    avalakh    26    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    30683    itriot11    34    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    40665    json    17    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    102809    ids79    16    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    47644    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    33458    YPermitin    14    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    22373    SeiOkami    53    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    82185    ids79    18    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    74695    ids79    28    

Регистры накопления. Виртуальные таблицы. Часть №2: "Остатки" и "Остатки и обороты"

Практика программирования v8 1cv8.cf Бесплатно (free)

Описание работы платформы 1С:Предприятие 8.2 с виртуальными таблицами регистров накопления "Остатки" и "Остатки и обороты". Анализ SQL-запрос при работе с виртуальными таблицами

22.05.2019    43149    YPermitin    8    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    62267    YPermitin    31