СКД - одна из проблем связи Наборов данных

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

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

СКД Набор Связи

Официальная информация: 1. В схеме компоновки данных нет указания типа связи. Все связи считаются ЛЕВЫМИ внешними соединениями. 2. Если для вложенного набора данных указано условие фильтра, тогда связь вложенного набора данных с родительским набором данных считается ВНУТРЕННЕЙ. Или как получить все результаты основного набора при отборе в зависимом.

Доброго времени суток.

Вступление

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

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

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

1. Подготовка и демонстрация

НаборДанных1 (основная выборка) с полями Комплектующая, Продукция и КоличествоНа1 (среднее взял, потому что бардак в спецификации) - запрос: 

 
Запрос по спецификации

 

НаборДанных2 (остатки, зависимый) - запрос:

 
Запрос остатков

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

Связи наборов данных: Источник - НаборДанных1 (основной), Приемник - НаборДанных2 (зависимый), Выражения - Комплектующая. 

 
Картинка связи

Ресурсы пока простые: Сумма(КоличествоНа1) и Сумма(ОстатокКомлектующей).

Структура простенькая группировки: Комплектующая - Продукция - Детальные записи. Выбраны все поля.

 
Картинка структуры

Выполняю. Получаю ожидаемый результат - все есть, все хорошо:

 
Картинка результата

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

Проблема:

Но вот я задаю отбор "Склад отбора Равно Цех готовой продукции" и результат - только одна комплектующая:

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

Тогда я еще не знал про "замену Левого на Внутреннее, если есть отбор"...

2. Попытка выкрутиться

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

Но вот беда: в отборе по группировке, среди доступных полей, нет поля "СкладОтбора":

 
Картинка - нет поля СкладОтбора

 

Хорошо, попробую использовать СкладКомплектующей. Добавил отборы в каждую группировку, но выключенные и стал включать по очереди. Первым включаю у группировки Комплектующая. Результат такой же, как с отбором по отчету целиком. Отключаю.

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

 
 Результат отбора по группировке

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

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

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

3. Хотелки и их исполнение.

Кому интересно решение проблемы - этот пункт можно пропустить.

Хотелка 1 - а почему не добавить показ остатков по Продукции?

Хотелка 2 - как бы сделать отчет более смотребильным, а то складов много и увидеть остатки сразу в строке - значит надо склады в колонки, а тогда отчет получается "разряженным".

Хотелка 3 - если уж добавил остатки продукции, то отбор по складу должен работать и на это.

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

 
 Запрос НабораДанных3

Тут интересный эффект наблюдал, если поле Склад будет иметь одинаковое наименование в обоих подчиненных наборах, то в результате в остатках у продукции будет не правильный склад, потому что значение будет от первого набора. Поэтому - они разные. Одинаковыми могут быть только действительно одинаковые по смыслу поля, например те которые участвуют в связи. Так Номенклатура для НабораДанных2 называется Комплектующая, а в НабореДанных3 - Продукция. Ну а чтобы поле отбора было единым для обоих наборов: появился СкладОтбора - это решило хотелку 3.

Ну и добавляем еще одну связь.

 
 Картинка Связей

Ну и в ресурсах определяем ОстатокПродукции.

Теперь вторая хотелка. Если выводить данные по складам списком - получим умножение строк остатков, например 5 складов по Комплектующей и 3 по Продукции итого 15 строк. Хорошо хоть итоги по группировкам правильные. Да и как "сложить" 2 одинаковых склада по комплектующей и по продукции? Поля называются по разному и как сделать по ним группировку - не придумал.

Тут на помощь пришла вторая статья Агрегатные функции СКД, о которых мало кто знает. Сначала использовал функцию ТаблицаЗначений. Но при простом повторении формирования отчета строки складов прыгают. Тогда добавил Упорядочить в итоге получилось так: 

 
 Выражение в ресурсах

Для ОстаткаКомплектующих: Упорядочить(ТаблицаЗначений(Различные СкладКомплектующей Как Склад, ОстатокКомплектующей Как Остаток), "Склад Автоупорядочивание")

Для ОстаткаПродукции: Упорядочить(ТаблицаЗначений(Различные СкладПродукции Как Склад, ОстатокПродукции Как Остаток), "Склад Автоупорядочивание")

 
 Они же на картинке

 

Дальше немного "причесал" структуру: выключил детальные записи, сгруппировал поля, отключил "Общие Итоги по вертикали".

 
 Вот такая структура

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

 
 Кусок результата

Теперь влючаю отбор по складу и вижу результат, опять исчезли строки (что в прочем уже ожидаемо):

 
 Картинка проблемы
4. Поиск решения

Сразу скажу: на мой взгляд не очень хорошее, но другого не нашел. Вопросы такого плана есть, а ответов увы не много. Потому думал сам и пришел к выводу - если связь вместо ЛЕВОЙ становится ВНУТРЕННЕЙ, значит необходимо сделать так, чтобы для каждой записи основного набора существовала запись зависимого, не взирая на отбор.

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

 
 Запрос остатков связанный с номенклатурой

 ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК СкладКомплектующей,
    СпрНоменклатура.Ссылка КАК Комплектующая,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокКомплектующей
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, ) КАК ТоварыНаСкладахОстатки
        ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
{ГДЕ
    ТоварыНаСкладахОстатки.Склад.* КАК СкладОтбора}

Дальше экспериментировал с настройками. Работало долго. На каком-то этапе вообще получил от сервера отлуп по памяти... Бросил.

Пробовал создать набор типа Объединение, где один набор - остатки, другой - опять же номенклатура. Но там надо было создавать сложные условия с ИЛИ, чтобы запись Номенклатуры выбиралась в любом случае... Не пошло.

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

5. Решение

И начал снова с Левого соединения в запросе. Получился такой запрос (правильный):

 
 Запрос остатков связанный с номенклатурой

 ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК СкладКомплектующей,
    СпрНоменклатура.Ссылка КАК Комплектующая,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокКомплектующей
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, {(Склад).* КАК СкладОтбора, (Номенклатура).* КАК Комплектующая}) КАК ТоварыНаСкладахОстатки
        ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура

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

 
 Правильный результат

 

Стал сравнивать с предыдущими тестами и понял: {ГДЕ ТоварыНаСкладахОстатки.Склад.* КАК СкладОтбора} отрабатывала после соединения, а потому отсекало номенклатуру. А когда я перенес его в условия таблицы остатков, то и отбор сработал только на регистр остатков не затронув номенклатуру. Потому первый запрос - не правильный и не работает, а второй заработал (так я считаю).

Но самым удивительным для меня оказался такой результат (отбор по другому складу и еще одна продукция):

 
 Удивительный результат

 

Чем удивило? А тем, что Левое соединение я делал только в одном наборе данных - во втором (по комплектующим), а в третьем - как было, так и осталось. Почему же группировка по Продукции не пропала? Почему остатки выдает правильные с учетом отбора? Вывод получился такой - а третий набор, несмотря на то что к нему был применен отбор, все-равно имеет ЛЕВОЕ соединение. Возможно свою лепту вносит тот факт, что для второго и третьего набора один и тот же отбор. Возможно третий слепили со вторым, а потом только с первым.

Правильный вывод или нет - я не знаю.

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

Конец

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

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

Лучшие комментарии
4. dhurricane 04.03.20 07:37 Сейчас в теме
Еще один способ, как обойти преобразование левого соединения во внутреннее - это добиться появления поля "СкладОтбора" в первом наборе данных.

Попробуйте доработать запрос первого набора данных следующим образом:
ВЫБРАТЬ
	Склады.Ссылка КАК СкладСсылка
ПОМЕСТИТЬ ВтСклады
ИЗ
	Справочник.Склады КАК Склады
{ГДЕ
	Склады.Ссылка.* КАК СкладОтбора}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СпецификацииВыходныеИзделия.Номенклатура КАК Продукция,
	СпецификацииИсходныеКомплектующие.Номенклатура КАК Комплектующая,
	СРЕДНЕЕ(СпецификацииИсходныеКомплектующие.Количество / СпецификацииВыходныеИзделия.Количество) КАК КоличествоНа1
ИЗ
	Справочник.Спецификации.ВыходныеИзделия КАК СпецификацииВыходныеИзделия
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Спецификации.ИсходныеКомплектующие КАК СпецификацииИсходныеКомплектующие
		ПО СпецификацииВыходныеИзделия.Ссылка = СпецификацииИсходныеКомплектующие.Ссылка

СГРУППИРОВАТЬ ПО
	СпецификацииВыходныеИзделия.Номенклатура,
	СпецификацииИсходныеКомплектующие.Номенклатура
Показать

Здесь я добавил первым запрос к справочнику складов. Т.к. используется секция {ГДЕ}, при установке отбора по полю "СкладОтбор", этот отбор попадет в условия нашей новой временной таблицы. Но при этом само поле "СкладСсылка" в отчете никоим образом не участвует, поэтому оптимизатор СКД просто "выкинет" эту часть запроса (получение временной таблицы).

Т.о. можно немного запутать СКД (а вместе с ней и разработчика, который будет сопровождать отчет), но при этом избавиться от внутреннего соединения в связях наборов данных и не нагрузить базу данных избыточными выборками данных (соединение со справочником номенклатуры во втором наборе можно убрать).
JohnyDeath; purgin; testnv0; toypaul; BelikovSA; +5 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Valerich 1678 04.03.20 04:36 Сейчас в теме
Вместо двух наборов сделать один и в нем явно сделать левое соединение
3. dhurricane 04.03.20 07:18 Сейчас в теме
(1) Тогда "поплывут" количественные показатели. В частности в общем итоге "КоличествоНа1" задвоится, затроится и т.д. Трудности с наборами данных перерастут в трудности с выражениями ресурсов.
5. BelikovSA 26 04.03.20 10:02 Сейчас в теме
(1)
Одна комплектующая для нескольких продукций - итог несколько строк в результате. При левом соединении несколько строк остатков. В результате нельзя использовать данную колонку в Ресурсах (по крайней мере в виде простой суммы), если знаете как - напишите пожалуйста.
2. dhurricane 04.03.20 07:12 Сейчас в теме
Я бы предложил следующее.

1. Отказаться от параметра "Номенклатура", использовать вместо него обычный отбор по номенклатуре на уровне отчета, вынесенный в пользовательские настройки. Возможно я что-то не учитываю в Вашей задаче, но отбор ведь значительно гибче: пользователь сможет указывать не только отбор по иерархии, но и любой другой.

2. Добавить отбор данных второго запроса по списку номенклатуры, при том не только для таблицы остатков, но и для основной таблицы. Ведь в действительности нам не нужно получать запросом весь справочник номенклатуры:
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК СкладКомплектующей,
    СпрНоменклатура.Ссылка КАК Комплектующая,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокКомплектующей
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, Номенклатура В (&СписокНоменклатуры) {(Склад).* КАК СкладОтбора}) КАК ТоварыНаСкладахОстатки
        ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
ГДЕ
    СпрНоменклатура.Ссылка В (&СписокНоменклатуры)
Показать

3. На закладке связей первого и второго наборов данных указать в качестве параметра связи "СписокНоменклатуры", установить флажок "Список параметров". Таким образом СКД будет выполнять запрос второго набора данных с отбором по номенклатуре исключительно из первого набора данных. А что попадает в первый - уже решение пользователя.

4. На закладке параметров СКД для нового параметра "СписокНоменклатуры" установить флажок доступности списка значений и ограничить доступность параметра пользователю.
BelikovSA; +1 Ответить
6. BelikovSA 26 04.03.20 10:12 Сейчас в теме
(2)
Я упростил задачу для написания статьи. Исходно список номенклатуры (продукции ) идет из табличной части Заказа, да и разбор на комплектующие идет глубже одного уровня.
Если для отчета - с п.1 и 2 - согласен полностью.
По п.3 - честно говоря плохо его понимаю. В моем понимании получится, что второй набор данных станет выполнятся "в цикле". Возможно не так понял - посмотрю. Спасибо.
7. dhurricane 04.03.20 10:18 Сейчас в теме
(6) Да, наверняка он будет выполнятся в цикле. Но это не так страшно. Флажок "Список параметров" на закладке связей отвечает как раз за то, чтобы получать данные порциями. Порции, на сколько я помню, должны быть достаточно большими (до 1000 значений в параметре), так что итераций будет немного. И это наверняка дешевле, нежели получить запросом весь справочник номенклатуры целиком.
BelikovSA; +1 Ответить
4. dhurricane 04.03.20 07:37 Сейчас в теме
Еще один способ, как обойти преобразование левого соединения во внутреннее - это добиться появления поля "СкладОтбора" в первом наборе данных.

Попробуйте доработать запрос первого набора данных следующим образом:
ВЫБРАТЬ
	Склады.Ссылка КАК СкладСсылка
ПОМЕСТИТЬ ВтСклады
ИЗ
	Справочник.Склады КАК Склады
{ГДЕ
	Склады.Ссылка.* КАК СкладОтбора}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СпецификацииВыходныеИзделия.Номенклатура КАК Продукция,
	СпецификацииИсходныеКомплектующие.Номенклатура КАК Комплектующая,
	СРЕДНЕЕ(СпецификацииИсходныеКомплектующие.Количество / СпецификацииВыходныеИзделия.Количество) КАК КоличествоНа1
ИЗ
	Справочник.Спецификации.ВыходныеИзделия КАК СпецификацииВыходныеИзделия
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Спецификации.ИсходныеКомплектующие КАК СпецификацииИсходныеКомплектующие
		ПО СпецификацииВыходныеИзделия.Ссылка = СпецификацииИсходныеКомплектующие.Ссылка

СГРУППИРОВАТЬ ПО
	СпецификацииВыходныеИзделия.Номенклатура,
	СпецификацииИсходныеКомплектующие.Номенклатура
Показать

Здесь я добавил первым запрос к справочнику складов. Т.к. используется секция {ГДЕ}, при установке отбора по полю "СкладОтбор", этот отбор попадет в условия нашей новой временной таблицы. Но при этом само поле "СкладСсылка" в отчете никоим образом не участвует, поэтому оптимизатор СКД просто "выкинет" эту часть запроса (получение временной таблицы).

Т.о. можно немного запутать СКД (а вместе с ней и разработчика, который будет сопровождать отчет), но при этом избавиться от внутреннего соединения в связях наборов данных и не нагрузить базу данных избыточными выборками данных (соединение со справочником номенклатуры во втором наборе можно убрать).
JohnyDeath; purgin; testnv0; toypaul; BelikovSA; +5 Ответить
8. BelikovSA 26 04.03.20 10:51 Сейчас в теме
(4)
Блеск :)
Работает!!! Красивое решение :).
Спасибо большое, а то меня именно "нагрузка избыточными данными" и напрягала. Как я уже писал в какой-то момент вообще получал вылет по памяти. А тут такая красота - складов ограниченное количество в отличии от номенклатуры.
9. dhurricane 04.03.20 13:35 Сейчас в теме
(8)
складов ограниченное количество в отличии от номенклатуры.
В приведенном примере запроса к складам не будет вообще, т.к. поле "СкладСсылка" не используется в настройках компоновки. Оптимизатор запросов СКД просто-напросто "выбросит" этот кусок запроса, останется только запрос к спецификациям.
Оставьте свое сообщение

См. также

Работа с запросами в 1С СКД. Примеры использования расширения языка запросов СКД

Статья Программист Нет файла v8::Запросы v8::СКД Россия Бесплатно (free) Практика программирования

Все тонкости использования расширения языка запросов 1С для СКД вы можете изучить по ссылкам, которые приведены в предыдущей статье. Здесь мы рассмотрим конкретные кейсы применения данного расширения.

сегодня в 14:20    137    ProfessionStore    0       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Запросы 1С СКД. Возможности и ограничения

Статья Программист Нет файла v8::Запросы v8::СКД Россия Бесплатно (free) Практика программирования

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.

сегодня в 00:00    624    ProfessionStore    6       

Лучшие программы за прошедший месяц Промо

Инфостарт подготовил ТОП-25 самых продаваемых и популярных на текущий момент программ. При формировании списка учитывается аналитика продаж и запросы клиентов за последний месяц.

Получение значений всех полей в иерархии структуры отчета

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

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

28.02.2020    949    real_MaxA    1       

Для чего нужен флаг "Автозаполнение" в СКД и каких проблем без него можно избежать

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

Речь пойдет о флаге «Автозаполнение» в наборе данных Запрос Системы компоновки данных (СКД). Сразу хочу отметить, что флаг «Автозаполнение» доступен только в наборе данных - Запрос.

26.02.2020    3579    Neti    41       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

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

4900 рублей

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

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

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

27.01.2020    9755    ids79    26       

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

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

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

15.01.2020    11322    John_d    22       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

СКД. Лайфхак №2. Собираем отчет еще удобнее

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

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

20.11.2019    7670    aximo    15       

Некоторые редко используемые возможности СКД

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

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

11.11.2019    8698    kser87    39       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Лайфхак работы с СКД. Собираем отчет.

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

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

25.10.2019    12781    aximo    29       

Немного про СКД. Характеристики и проверка пустого отчета

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

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    7599    YPermitin    7       

Екатеринбург.Online: Голосование продолжается Промо

Продолжается голосование за доклады на INFOSTART MEETUP Екатеринбург.Online! Лучшие из них попадут в окончательную программу онлайн-митапа! Присоединяйтесь к голосованию и покупайте билеты - 3 000 рублей за 8 часов продуктивной пятницы!

3000

Полезняшки по СКД и построителям. Просто код

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

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    7097    Yashazz    45       

Две схемы СКД в одном отчете с пользовательскими параметрами

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

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

10.10.2019    5709    evgeni-red    7       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Три способа создания одного отчета на СКД

Статья Программист Нет файла v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free) Практика программирования

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

08.10.2019    9620    ids79    24       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

СКД не только для отчетов

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

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

18.09.2019    14766    YPermitin    34       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

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

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

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

05.09.2019    31433    ids79    50       

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

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

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

08.08.2019    44161    ids79    36       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

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

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

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

26.07.2019    34543    ids79    11       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

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

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

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

17.07.2019    24026    ids79    27       

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

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

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

09.07.2019    16290    ids79    2       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

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

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

04.07.2019    14897    SeiOkami    49       

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

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

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

02.07.2019    28555    ids79    9