Допиливаем форму выбора серий номенклатуры для отображения остатков

Публикация № 80439

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

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички  в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

Не вполне серьезная статья о вполне реальной, но часто неверно решаемой задаче. (Новичкам рекомендуется).

Итак приступим: в качестве подопытной возьмем типовую конфигурацию УТ ред. 10.3. Предполагается, что конфигурация работает на платформе 8.2 и снята с поддержки (включена возможность изменения).

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ну вот, теперь можем приниматься за доработку формы списка...хотя стоп (!), возникает резонный вопрос: а зачем мы тогда ставили эту самую «галку» ? Согласен, мы не будем дорабатывать старую и толстую форму (смайл), а вместо этого создадим новую «тонкую» да к тому же еще и управляемую (хитрый смайл). Но прежде  я мысленно вернусь на несколько лет в прошлое и представлю, как бы все это выглядело имей мы дело со старушкой 8.1 Smile

Собственно, делов-то! Берем форму, добавляем на нее колонку Остаток, ну а получение и вывод на экран конечно же делаем в обработчике ПриВыводеСтроки()табличного поля. Примерно так:

Часто сталкиваюсь с таким кодом. В принципе он рабочий, но методически неверный. Во-первых неверно само размещение запроса на получение остатков в процедуре ПриВыводеСтроки(). Ведь в этом случае при выводе каждой строки будет идти обращение к базе данных и работать все это хозяйство будет неэффективно, в чем мы сможем убедиться, запустив базу в файловом режиме на слабеньком офисном ПК 2005 г.в. (кои встречаются достаточно часто). При большом количестве строк в списке - слайд-шоу гарантировано Smile. На эти грабли наступают многие новички не дошедшие пока в списке обработчиков до события ПриПолученииДанных(), а ведь оно как раз для этих целей и предназначено. Так ладно, с этим понятно, переделаем. Но ведь и  остатки мы получаем не верно: во первых общие по всем складам, а во-вторых на текущую дату. А на практике как правило складов используется несколько, да и документы могут проводится «задним числом». В этом случае ситуация усложняется. Придется каким-то образом передавать в открываемую форму данные по складу и дате остатков. В этом нам поможет обработчик поля ввода СерииНоменклатуры  НачалоВыбора(). Перво-наперво отрубаем СтандартнуюОбработку, присвоив ей значение Ложь. Дальше возможны варианты:

1)  ФормаВыбораСерий = Справочники.СерииНоменклатуры.ПолучитьФормуВыбора(,ЭтаФорма);

     ФормаВыбораСерий.ОткрытьМодально();

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

2) Более правильным представляется вариант с созданием реквизита (или экспортной переменной)  «СтруктураПараметров» (тип Структура) в форме выбора серий, и дальнейшей передачей значений в эту переменную в обработчике  НачалоВыбора(). В этом случае процедура примет вид:

Так, но это еще не все. Если теперь запустить программу в пользовательском режиме и попробовать выбрать серию, мы наступим на очередные «грабли». Когда мы отключили стандартную обработку, у нас потерялась связь серии с ее владельцем номенклатурой, поэтому сперва будет открываться форма выбора номенклатуры, а потом уже подчиненного справочника серий, что конечно же очень антигуманно по отношению к пользователям. Исправить ситуацию нам поможет такое замечательное свойство формы  (замечу только в толстом клиенте, в тонком все выглядит несколько иначе, об этом далее) как ПараметрВыборПоВладельцу, сюда нужно передать ссылку на номенклатуру владельца. Запускаем 1С:Предприятие, открываем документ реализации, нажимаем на педальку выбора серии и вуаля - очередные грабли!

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

СтруктураПараметров.Вставить("ДатаОстатков",  МоментВремени());

Но и это еще не все! Laughing  Форма открывается с  отбором по владельцу, остатки показываются, но теперь перестала позиционироваться текущая строка, т.е. при открытии списка она все время находится на первой.

Для решения проблемы нужно в обработчике ПриОткрытии() теперь уже формы выбора серий присваивать свойству  ПараметрТекущаяСтрока значение нашей серии. Вот теперь после стольких мытарств все работает более и менее корректно.

 


 

В общем-то вся эта демагогия была присуща старой версии платформы, и мы сейчас посмотрим как это же самое делается в платформе 8.2 в управляемой форме (помните про галку? Cool ).

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

Итак приступим. Создаем новую форму выбора, тип указываем Управляемая, на следующей вкладке выбираем отображаемые реквизиты, жмякаем ОК - форма готова. А куда нам теперь сваять колонку с остатками? Куда ее добавлять? В элементы (это те, что слева) или в реквизиты (это те что справа)? Я так отвечу: никуда не нужно ничего добавлять, чуть позже она сама волшебным образом появиться на форме.

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

 Рестартим 1С и убеждаемся, что теперь все работатет.

ОК, сделали. Но где теперь искать событие «ПриПолученииДанных», в котором мы будем получать наши остатки? Спешу вас обрадовать, в платфторме 8.2 все делается намного проще, а все благодаря новому замечательному объекту «ДинамическийСписок» и  он-то  у нас является основным реквизитом формы. А это значит, что мы имеем полное на то право воспользоваться одной из его фишек, а именно указанием произвольного запроса. Для этого в свойствах реквизита Список (открывается через палитру свойств) ставим одноименную галку.

Теперь нажимаем на гиперссылку Открыть и видим....минуточку, где-то я это уже видел! Ах да, это та самая СКД, которая в 8.1 использовалась для построения отчетов. А вот в 8.2 на ней построены практически все списки справочников, документов и т.д. Подробно описывать свойства динамического списка я не буду, т.к. это уже выходит за пределы нашего повествования. Для нас сейчас имеет значение лишь возможность указания произвольного запроса, чем мы собственно и займемся!

Итак, у нас открылось вот такое окошко.

 

Нажимаем кнопку конструктор и конструируем наш запрос . Все поля  что были оставляем и добавляем левое соединение к ВТ таблице регистра ТоварыНаСкладахОстатки. Вот так может выглядеть текст запроса.

Сохраняем запрос и закрываем форму редактирования динамического списка. Так, что-то на форме пока не наблюдается никаких изменений, колонки как не было, так и нет. А вот и не правда Wink Она появилась в качестве реквизитов самого списка и теперь нам всего-навсего осталось перетащить ее в поле элементов списка. Вот что должно получиться в результате:

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

Список.Параметры.УстановитьЗначениеПараметра(«ИмяПараметра», ЗначениеПараметра);

Ну а дальше скорее всего остается также как и было на 8.1. Создаем структуру, затем передаем ее в реквизит (или параметр?...а может экспортную переменную?), все...алес, приплыли. Эх была ни была, сделаю как в 8.1 (здесь я специально утрирую, чтобы показать реальную ситутацию, а она к сожалению такова, что до сих пор многие работают методом тыка, не особо заботясь о корректности выбранного решения, реботает?...ну и ладно! ). Так бррр..., о чем это я? Ах да, создаем реквизит СтруктураПараметров и передаем ее также из обработчика НачалоВыбора() из документа.

Итак как передавать параметры решили, но как их получать в форме выбора серий? Точнее не как, а где именно? Первое, что приходит в голову - в процедуре ПриОткрытии(). Но это опять же неправильное решение. И вот почему. В платформе 8.2 управляемая форма существует одновременно на сервере и на клиенте, находясь при этом в разных контекстах. Обращение к базе данных возможно только из серверного контекста. Поэтому форма сперва создается на сервере, «приезжает» на клиента и только потом уже в клиентском контексте срабатывает обработчик ПриОткрытии(), который в нашем случае снова будет обращаться к серверу за данными. Таким образом правильно получать и устанавливать параметры запроса в процедуре ПриСозданииНаСервере().

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

И кстати, помимо всего прочего через данное свойство можно и нужно передавать и отбор в динамический список используя следующую конструкцию:

Как видим, тут же мы и устанавливаем параметр ТекущаяСтрока, чтобы правильно происходило позиционирование в списке. И открытие формы теперь происходит совсем по другому - с использованием процедуры ОткрытьФорму() (модально - частный случай), где вторым параметром мы и передаем нашу структуру.

Ну вот наконец-то все готово. Запускаем, пробуем...ура работает! Но не спешите радоваться, не все нюансы мы с вами учли: во первых мы не совсем корректно построили сам запрос. У нас жестко прописаны параметры Номенклатура и Склад, и допустим при открытии из формы документа мы нормально передадим эти параметры и запрос отработает корректно. Но что будет, если пользователь просто откроет форму выбора? Правильно - платформа выдаст ошибку, что значения параметров не установлены. Поэтому включаем смекалку и дорабатываем процедуру ПриСозданииНаСервере() и текст самого запроса. В конечном итого получаем следующие листинги:

И вот так выглядит конечный текст запроса:

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

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mtv:) 1012 25.09.11 08:36 Сейчас в теме
Статья, безусловно, полезная.
Но очень неудобно то, что код вставлен картинками, а не текстом. Невозможно перенести код простым копированием. Приходится набивать вручную… :( . Это портит общее впечатление от публикации.
Хотя все равно плюс.
Alex_will; +1 Ответить
2. practik1c 88 29.09.11 00:41 Сейчас в теме
Собственно сделал картинками потому что форматирование кода жутко неудобное да и раскраска не та :)
Но плюсы тоже есть, когда не копипастишь, а набираешь сам - усваяемость сильно лучше! ;)
3. starkv 15.10.11 15:49 Сейчас в теме
Может я что-то и не то сделал, но кажется есть ошибочка, не происходит выбор серии
из-за (Стандартная обработка = ложь)
Я сделал так:

ВыбраннаяСерия = ОткрытьФормуМодально("Справочник.СерииНоменклатуры.ФормаВыбора",СтруктураПараметров);

Если ТипЗнч(ВыбраннаяСерия) = Тип("СправочникСсылка.Серииноменклатуры")Тогда
ТекущиеДанные.СерияНоменклатуры = ВыбраннаяСерия;
КонецЕсли;
1CSoft; ПодводныйТ; zhurba; +3 Ответить
4. Sintson 366 19.11.11 22:01 Сейчас в теме
мАлАдец, тильки как с извечным вопросом обновления совладать, но это, как говориться ничего личного, больше к 1С вопрос, а так, тема здравая, я так же делал.
5. Dwiss 159 22.12.11 17:54 Сейчас в теме
Помоему здесь ошибочка
ДатаОстатков = <<?>>мТекущяДата(); (Проверка: Толстый клиент (обычное приложение))
ТекущаяДата() работать не будет нужно использовать
ТекущаяУниверсальнаяДата()
Синтаксических ошибок не обнаружено!
6. Hans 1 08.01.12 17:25 Сейчас в теме
Желательно бы то же самое только для табличной части документа под управляемые формы.
7. nav1971 25 11.01.12 19:21 Сейчас в теме
а куда делась статья? виднго только описание!
9. babylon_5 55 15.01.12 14:12 Сейчас в теме
(7) Открой не в IE, а в другом браузере.
8. smilejka 31 13.01.12 09:36 Сейчас в теме
Как раз сегодня планировал заниматься такой задачей. Только мне необходимо реализовать в форме подбора номенклатуры.
Статья интересная +
10. Sergeant82 01.07.12 16:27 Сейчас в теме
Огромное спасибо за публикацию! Очень выручила. Но у меня была не ТЧ, а просто Поле выбора на форме, и заработало только после добавления ", Элемент" в строке:
ОткрытьФормуМодально("Справочник.СерииНоменклатуры.ФормаВыбора",СтруктураПараметров, Элемент)
11. roma03v1 22.08.12 20:29 Сейчас в теме
Спасибо большое очень помогло, так как пока плохо программирую, очень сильно сэкономил мне время.
12. Astrakhan_man 29.10.12 12:36 Сейчас в теме
Можно вопрос, как Вы передаете дополнительные параметры (склад) в форму выбора? но я на обычных формах.
13. Astrakhan_man 29.10.12 23:36 Сейчас в теме
я создаю реквизит формы "СтруктураПараметров" с типов Произвольный (не понял как создать с типом структура), передаю в него данные
(ВыбраннаяСерия = ОткрытьФормуМодально("Справочник.СерииНоменклатуры.ФормаВыбора",СтруктураПараметров);)
, но в процедуре в "СправочникСписокПриПолученииДанных" пишет "Поле объекта не обнаружено (Склад)" где у меня ошибка.
14. Astrakhan_man 30.10.12 18:31 Сейчас в теме
переделал на управляемые формы, и при открытие пишет такую ошибку "по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(16, 5)}: Не задано значение параметра "Дата"
<<?>>&Дата,
"

в параметрах формы(у списка) я её задал. из формы передаю.
15. katavyjob 03.07.14 14:03 Сейчас в теме
Жаль нет итоговых картинок работы данного механизма в самой программе((
16. lambert@inbox.ru 7 21.10.17 17:20 Сейчас в теме
17. user973244 23.05.18 22:30 Сейчас в теме
Да очень огромное спасибо, немного здвинула меня с места ваше решение
18. maxf 19.07.19 18:45 Сейчас в теме
Понаделав кучу всякой ерунды полезных вещей, разработчики так и не удосужились сделать так, чтобы можно было понять в подчиненной форме, откуда она открыта без влезания в форму-владелец. В данном случае форма выбора серий открывается из нескольких десятков видов документов и влезать в каждый из них - это очень плохое решение, когда база еще худо-бедно на поддержке.
trustasia; 1CSoft; +2 Ответить
19. 1CSoft 7 27.04.20 13:49 Сейчас в теме
Спасибо! Использовал в своей работе.
Оставьте свое сообщение

См. также

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

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

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

10.12.2016    37792    unichkin    74    

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

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

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

27.01.2020    30647    ids79    26    

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

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

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

15.01.2020    26465    John_d    22    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.01.2020    16891    aximo    14    

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

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

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

15.10.2018    30981    tormozit    100    

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

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

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

30.12.2019    20154    kuzyara    33    

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

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

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

02.12.2019    17669    YPermitin    72    

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

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

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

22.11.2019    8803    Sibars    19    

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

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

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

20.09.2012    78499    tormozit    131    

Создание асинхронных виджетов

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

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    13187    YPermitin    19    

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

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

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

07.10.2019    30884    HostHost    40    

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

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

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

01.10.2019    35660    Yashazz    50    

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

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

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

11.07.2007    49051    tormozit    42    

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

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

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

06.09.2019    55496    rpgshnik    63    

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

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

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

05.09.2019    52557    ids79    54    

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

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

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

05.09.2019    30117    YPermitin    24    

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

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

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

10.09.2017    45486    tormozit    74    

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

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

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

03.09.2019    26055    YPermitin    80    

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

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

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

17.08.2019    32796    ids79    16    

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

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

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

08.08.2019    91227    ids79    52    

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

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

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

25.04.2019    16203    m-rv    2    

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

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

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

02.08.2019    38585    avalakh    25    

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

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

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

31.07.2019    25666    json    15    

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

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

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

26.07.2019    65451    ids79    12    

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

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

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

16.04.2019    20580    m-rv    17    

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

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

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

17.07.2019    37341    ids79    27    

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

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

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

09.07.2019    26925    YPermitin    14    

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

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

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

04.07.2019    19956    SeiOkami    50    

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

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

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

01.06.2018    31308    m-rv    21    

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

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

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

02.07.2019    51113    ids79    17    

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

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

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

25.06.2019    55451    ids79    25    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    25924    dmurk    146    

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

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

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

05.12.2017    28499    itriot11    34    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    43371    YPermitin    52    

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

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

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

16.05.2019    45310    YPermitin    30    

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    36220    ellavs    126    

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

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

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

27.01.2016    77147    Serginio    110    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

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

28.03.2019    27853    ellavs    90    

Трюки с внешними источниками данных

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    32348    YPermitin    53    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

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

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    22857    Vladimir Litvinenko    27    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

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

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    35695    ids79    40    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    42008    ids79    9    

Тестер: частые вопросы Промо

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

Ошибкам бой - тесты норма жизни!

25.07.2018    29591    grumagargler    28    

EnterpriseData – часть 2. Процесс выгрузки данных

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

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    27678    ids79    31    

Новый подход к обмену данными EnterpriseData

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

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    42843    ids79    72    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    38218    ids79    42    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

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

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

04.09.2017    53546    m-rv    61    

Программное заполнение пользовательских параметров и отборов СКД

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

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

13.11.2018    50830    Unk92    25