115 полезностей от Буравова Андрея по курсу СКД Евгения Гилёва

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

Разработка - Математика и алгоритмы

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

Среди вложенных файлов размещено электронное оглавление от Крынецкого.

1.   L6. При разработке отчета удобно и быстро создавать его с помощью консоли отчетов СКД

2.   L5. Объединение набора данных используется для объединения с объектами типа «ТаблицаЗначений», «Табличное поле» и т.д.

3.   L6. В консоли отчетов СКД можно проверить – на сколько оптимально выполняется отчет, сначала выполнив отчет, затем посмотрев на xml схему макета компоновки данных на второй вкладке внизу «Макет для табличного поля документа»

4.   L7. Когда делаем отчет на СКД – не нужно указывать условия отбора в самом запросе. Надо указывать их на вкладке «Настройки – Отбор». Тогда:

  1. - не будет ошибок, если параметр не был заполнен

  2. - можно будет использовать различные виды сравнения (Равно, В группе, Заполнено…)

  3. - пользователь сможет убирать отбор, если он ему не нужен

5.   L8. Тем не менее, если отбор должен быть заложен жестко (например, фильтр по предопределенному значению или «Не включать помеченные на удаление»), тогда фильтровать можно и в запросе.

6.   L9. Итоговую сортировку также надо производить на вкладке Настройки – Сортировка, а не в запросе.

7.   L9. Если пользователю нужно запретить сортировку по какому-либо полю, можно на 1 вкладке СКД «Наборы данных» поставить галочку «Ограничение поля – Упорядочение». Подобные ограничения можно использовать и для запрета выключения этого поля, запрета использования отбора по этому полю, запрета группировок по этому полю.

8.   L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система.

9.   L12. Если в запросе есть виртуальная таблица типа «Остатки», «СрезПервых», «СрезПоследних», то СКД автоматически добавит параметр «Период». Если в запросе есть виртуальная таблица «Обороты» или «Остатки и обороты», СКД автоматически добавит параметры «НачалоПериода» и «КонецПериода».

10.  L12. Если в запросе не надо иметь возможность отдельно определять 3 параметра: период, начало периода и конец периода, то правильнее написать у поля Период выражение &КонецПериода, а в конструкторе запроса на вкладке «Компоновка данных» наложить так называемые необязательные параметры, а именно установить период в параметрах виртуальный таблица = &КонецПериода. Тогда из параметров СКД, параметр «Период» который нельзя было удалить, просто пропадет. В сам запрос попадет параметр, заключенный в фигурные скобки ОстаткиТоваров.Остатки({(&КонецПериода)}, ) – что будет являться расширением языка запросов компоновки данных. Фигурные скобки означают «необязательный параметр». Таким образом, если КонецПериода в СКД мы не указали, остатки будут получены на текущую дату.

11.  L12. После того, как мы создали множество таких необязательных параметров, может возникнуть необходимость перестать использовать какой-нибудь параметр. Вместо того чтобы бегать по всему запросу и удалять созданные параметры, можно просто поставить галочку «Ограничение доступности» на вкладке «Параметры» в СКД. Тогда параметры просто не будут использоваться, т.к. они не обязательные из-за фигурных скобок {}.

12.  L13. СКД при включенном флажке «Автозаполнение» всегда включает в поля компоновки все измерения регистров накопления (даже если они не были выбраны в запросе). Выводить эти поля в отчет нельзя, но по ним можно устанавливать отбор. Это видно из галочек «Ограничение поля» - только в поле «Условие» галочки нет. Таким образом, можно использовать эти измерения только в отборе отчета.

Расширение языка запросов компоновки данных

13.  L14. На вкладке «Компоновка данных» в конструкторе запроса можно определить поля, которые попадут в поля компоновки данных.

14.  L14. На вкладке «Поля», флажок «И» (Использовать дочерние) дает возможность по ссылке обращаться к дочерним значениям поля. Например из Номенклатуры узнать ВидНоменклатуры, Код,Наименование и т.д. Для примитивных типов (число, строка, булево, дата) этот флажок не ставится.

15.  L14. На закладке «Компоновка данных» в конструкторе запроса, если нужно установить параметр виртуальной таблицы, не нужно писать Номенклатура = &Номенклатура, получите кучу ошибок и не разберетесь в чем дело. Просто пишите Номенклатура (не указывая операции сравнения), тогда пользователь сам сможет указывать вид сравнения в настройках отчета, да и как минимум – отчет будет нормально работать.

16.  L14. Чтобы включить возможность устанавливать отбор по какому-либо полю в СКД – его нужно добавить на вкладку «Условия» (Конструктор запроса – Компоновка данных).

17.  L16. Подробное описание дополнительных функций СКД можно найти в справке F1 – Встроенный язык – Общие объекты – Система компоновки данных – Язык выражений системы компоновки данных – Функции языка выражений системы компоновки данных. Там описаны примеры использования тех или иных функций.

18.  L16. Дополнительные функции СКД можно использовать:

  1. - в вычисляемых полях

  2. - в поле «Выражение» вкладки Параметры СКД

  3. - во вкладке Настройки – Пользовательские поля

  4. - во вкладке Наборы данных – Выражение представления

  5. - во вкладке Наборы данных – Выражение упорядочивания

19.  L17. СКД может оптимизировать запрос таким образом, что изначально заложенный смысл полностью поменяется. Если вы замечаете, что запрос выводит неверные данные – выполните схему компоновки данных в консоли отчетов СКД и посмотрите xml макета. В нем вы увидите, во что СКД превратила ваш запрос своей оптимизацией. Т.е. она может удалить из пакетного запроса какие-нибудь нужные поля. Чтобы такого не происходило, можно в «Роли» этого поля поставить флажок «Обязательное».

20.  L18. Если в запросе для СКД какому-нибудь полю задается псевдоним, например: «ВЫБРАТЬ Номенклатура КАК ТОВАР», то тогда при автозаполнении полей компоновки данных, в поля попадут и Номенклатура и Товар отдельно. Если пользователь захочет установить отбор по товару, он увидит среди доступных для отбора полей и Номенклатуру и Товар, что может его запутать. Решение – задавать название в поле «Путь» компоновки данных. Тогда на всех вкладках мы (разработчики, в конфигураторе 1С) сможем обратиться к полю «Номенклатура» через «Товар». Пользователю же будет выводиться то, что указано в поле «Заголовок» компоновки данных. Этот заголовок будет использоваться и в качестве названия поля шапки таблицы, и в качестве заголовка поля по которому можно производить отбор, сортировку, группировку, условное оформление. Таким образом «Путь» - это то, что видит разработчик в конфигураторе. А пользователь видит «Заголовок», когда нажимает «Изменить вариант» в отчете.

21.  L19. То, что написано в поле «Путь» будет использоваться для сопоставления нескольких наборов данных в объединении. Поэтому задавайте одинаковые пути на одно и то же поле, если используете несколько наборов данных и планируете их объединить.

22.  L19. К Товару можно создать виртуальный вложенный реквизит, например задав для реквизита «Качество» Путь = Товар.Качество. Тогда на вкладке «Настройка» СКД мы сможем обратиться к нему развернув (плюсом +) реквизит Товар и выбрав вложенное поле «Качество».

23.  L20. «Ограничение поля» - накладывает ограничения на само поле. «Ограничение реквизитов» - накладывает ограничения на вложенные реквизиты поля. Причем если нужно скрыть само поле (среди отборов, например) – обязательно должны стоять два этих флажка.

24.  L21. «Выражение представления» - это то, что будет выводиться в отчет. Например можно написать «Товар.Артикул + “ – “ + Товар.Наименование». В качестве выражения можно использовать все возможности языка компоновки данных (например, ВЫБОР…), можно обращаться к экспортным функциям общих модулей (с флагом компиляции «Сервер»). Но использовать функции общих модулей не рекомендуется, т.к. это приводит к обращению к БД при выводе каждой строки (Запрос в цикле). Лучше получать данные запросом и использовать либо встроенные функции языка компоновки данных, либо описывать вычисляемые поля.

25.  L22. «Выражение упорядочивания» – это нестандартная сортировка.

26.  L23. «Тип значения» используется, когда нужно ограничить возможные типы Составного поля. Например, Склад может быть складом или подразделением. Если задать тип = СправочникСсылка.Склады, то пользователю в 1С при установке отбора по полю Склад не будет выскакивать окно выбора типа данных (Склад, Подразделение).

27.  L23. «Доступные значения» - можно указывать возможные для выбора предопределенные значения

28.  L24. В параметрах редактирования можно задать Быстрый выбор = Истина. Тогда при отборе по этому полю не будет открываться форма выбора, а все значения появятся выпадающим списком.

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

30.  L26. Ресурсы в СКД – это тоже что и Итоги в запросах.

31.  L27. В выражении Ресурса можно задавать произвольное выражение, а не только Сумма(Сумма) или Количество(Номенклатура). Например, можно описать такое выражение: Сумма(Количество)/Сумма(Сумма). Таким образом, можно использовать все возможности встроенного языка компоновки данных.

32.  L28. Одно и то же поле можно использовать в ресурсах несколько раз, только если на один ресурс рассчитываются Итоги по одним группировкам, а на другой – по другим группировкам. Например: Сумма(Количество) – по номенклатуре. Минимум(Количество) – по контрагенту.

33.  L28. Чтобы вывести по контрагенту долю проданных товаров по отношению к другим контрагентам, в процентах, необходимо воспользоваться функцией «Вычислить», добавив следующий ресурс: Поле: Количество. Выражение: «Сумма(Количество)/Вычислить(“Сумма(Количество)”, “ОбщийИтог”)*100». Рассчитывать по: Контрагент.

34.  L29. Чтобы в запросе проверить какое-либо значение на пустую ссылку, следует использовать примерно следующую конструкцию: ВЫБОР КОГДА Номенклатура = Значение(Справочник.Номенклатура.ПустаяСсылка) ТОГДА…

 

35.  L29. При обращении к виртуальным таблицам Остатков у поля обязательно должна быть заполнена Роль (например, НачОст). Если стоит флажок «Автозаполнение», роль установится автоматически.

36.  L30. При получении остатков из виртуальных таблиц, чтобы они отображались корректно, обязательно необходимо выбирать в запросе и поле ПериодСекунда. При этом в поле «Роль» компоновки данных, должна быть следующая нумерация периодов: Регистратор 1. ПериодСекунда 2. ПериодМесяц 3 (или иной период).

37.  L32. «Родитель» в «Роли» заполняем для поля «ВидНоменклатуры», когда оно является дочерним для поля Номенклатура (например). Иначе система выдает неверные остатки.

38.  L33. «Счет» в «Роли» - указываем путь к полю, в котором хранится вид счета, например Счет.Вид. Если вид счета явно не указать, то счет будет считаться активно-пассивным, а остатки будут определяться как: Положительные – Дт, Отрицательные – Кт. А должно быть по стороне Дт для активного счета, по стороне Кт для пассивного.

39.  L34. Роль «Остатки». Поле «Имя» - это имя группы остатков. Например группы «Количество», «Сумма» или «Валютная сумма». Следует задавать одинаковые имена группам остатков как для начального остатка так и конечного, т.е. парами.

40. L37. При получении остатков в запросе Обязательно должны присутствовать и начальный и конечный остаток, чтобы остатки рассчитались корректно. Выводить или не выводить один из остатков в самой настройке варианта отчета – не влияет на корректность остатков.

 

41.  L38. Неделя + Месяц (и боL9;льшие периодичности) будет давать неправильные остатки. Это особенность системы.

42.  L39. Еще одна особенность: Если из виртуальной таблицы нужно получать данные подчиненных реквизитов регистратора, нужно либо:

  1. - Регистратора добавить в группировки в настройках варианта

  2. - Получать реквизиты, подчиненные регистратору в запросе, а затем в выражении представления поля Регистратор, указывать например «Регистратор + “, ” + РегистраторКонтрагент»

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

43.  L41. Т.к. остатки формируются на начало какой-либо даты,

  1. 1. Нужно на вкладке «Компоновка данных» в конструкторе запроса для виртуальной таблицы установить параметры виртуальной таблицы Период = ДобавитьКДате(КонецПериода(&Период, ДЕНЬ), Секунда, 1)

  2. 2. Затем закрыть конструктор запроса и в тексте запроса убрать псевдоним (типа «Поле 2») в параметрах виртуальной таблицы.

  3. 3. Затем в Параметрах СКД установить для параметра «Период» состав даты: Дата.

  4. После чего на вкладке Настройки СКД установить для параметра Период флажок «Включать в пользовательские настройки»

44.  L42. Стандартный период сам приводит конечную дату ко времени 23:59:59

45.  L43. Если нужно получить несколько характеристик для каждой записи отчета, не следует делать связь с регистром сведений ЗначенияСвойствОбъектов (например). Получится огромное количество соединений. Лучше всего подключить механизм характеристик на вкладке «Характеристики» конструктора запроса. Тогда все характеристики будут добавлены в СКД как реквизиты, подчиненные основному реквизиту, например Номенклатуре. Что очень быстро и удобно.

46.  L44. Реквизит «ТипЗначения» у плана видов характеристик имеет специфичный тип «ОписаниеТипов» которого нет ни у одного другого объекта или реквизита конфигурации.

47.  L45. Чтобы установить используемый по умолчанию вариант отчета, нужно добавить в имя варианта «Основной» и отсортировать их стрелками. Такая вот странная сортировка вариантов.

48.  L51. В отчете не обязательно должны быть детальные записи. Например, в самом отчете выбираем ресурс «Количество» и добавляем одну группировку по номенклатуре. Тогда мы увидим сгруппированную номенклатуру, возле которой (а не под которой) будет указано количество. Таким образом, не обязательно группировать записи в самом запросе.

49.  L52. Иерархия по номенклатуре включает отображение групп, в которые входит номенклатура. Причем группы можно будет сворачивать так же, как и другие уровни группировок.

50.  L54. Если нужно получать остатки по дням, то нужно использовать виртуальную таблицу ОстаткиИОбороты, ибо виртуальная таблица Остатки показывает остатки только на выбранную дату.

51. L54. Чтобы остатки из виртуальной таблицы ОстаткиИОбороты рассчитались верно, обязательно в запросе нужно выбрать и НачальныйОстаток и КонечныйОстаток. А уже затем в самом отчете отображать только поле с КонечнымОстатком или только с НачальнымОстатком.

 

52.  L54. Чтобы отображать период с дополнением по дням, месяцам и другим периодам, нужно в настройках СКД добавить группировку по полю Период и указать ТипДополнения = День (или другой). А в начальной и конечной дате периода указать поле компоновки данных «НачалоПериода» и «КонецПериода» соответственно.

53.  L54. Если мы укажем в начальной и конечной дате периода тип данных «ТипДополненияПериодаКомпоновкиДанных», затем укажем например «Месяц», затем при формировании отчета зададим период с 15 мая по 20 июля, то система выведет дополнение только для тех периодов, где были записи с остатками. Т.е. если «Стол кухонный» стал фигурировать в остатках только в июне, 31 запись за май (31 день в месяце) не попадет в отчет вообще, ибо за тот период не было ни одной записи об остатках.

54.  L56. Пользователи могут создать собственные поля через «Изменить вариант» – вкладка «Пользовательские поля». Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки.

  1. - «Поле-выражение» можно писать с использованием всех возможностей языка компоновки данных

  2. - «Поле-выбор» выводит определенные данные при определенном условии. Например, если элемент предопределенный, то выводим строку «Эксклюзивный», иначе – «Стандартный».

 

55.  L58. Отбор в СКД можно устанавливать на каждую группировку отдельно. Таким образом, можно формировать отчет с одним набором данных, но с множеством различных группировок с различными отборами.

56.  L60. Отбор по ресурсу на уровне группировки применяется, когда нужно вывести всю номенклатуру, где общий итог по количество (например) больше 100. Таким образом, отбор на уровне отчета это отбор для детальных записей, а отбор на уровне конкретной группировки – это отбор для итога по этой группе.

57.  L61. Если в выбранные поля включено «Автополе» и еще вдобавок поле «Номенклатура», а в «Автополе» итак содержится Номенклатура, то СКД не будет добавлять второе поле «Номенклатура». «Автополе» - исключает дублирование.

58.  L61. Если добавить Автополе в диаграмму – она возьмет ТОЛЬКО первый ресурс, т.к. диаграмма должна и может содержать только один ресурс. Поэтому добавлять необходимые ресурсы в диаграмму лучше вручную.

59.  L62. Условное оформление может применяться и для Итогов по ресурсам. Просто нужно задавать условное оформление либо на уровне отчета, либо на группировке, стоящей выше детальных записей.

60.  L63. В условном оформлении диаграммы используются только 2 параметра: Цвет в диаграмме и Формат.

61.  L63. В круговой диаграмме указываются только серии. Точки не указываются.

62. L64. Значение «Авто» на вкладке Настройки – Другие настройки для Заголовка и Отбора означает «выводить отбор (заголовок), если он указан. Если не указан – не выводить». Поэтому рекомендуется оставлять значение «Авто».

 

63.  L65. Для группировок можно задавать вертикальный «ТипМакета» на вкладке Настройки – Другие настройки. Тем самым группировки будут транспонированы.

64.  L65. «Расположение итогов» – влияет на расположение итогов по группе. Общие итоги настраиваются в соответствующем параметре «Расположение общих итогов».

65.  L65. Если поставить «Расположение группировок» = Конец, тогда в отчете будет идти сначала номенклатура, а под ней Контрагент. При сворачивании группировки, вся вышестоящая номенклатура будет сворачиваться в нижнюю группировку. Поэтому почти никогда не стоит использовать такое значение этого параметра.

66.  L65. «Расположение полей группировок = Отдельно и только в итогах» следует использовать, когда нужно чтобы Номенклатура шла не под группировкой Контрагент, а в отдельном поле. Это требуется, например, в задаче 1.3 экзамена 1С: Специалист по платформе 8.2

67.  L65. «Расположение ресурсов» следует использовать, если в отчете более одного ресурса. Их можно вывести горизонтально или вертикально.

68.  L66. «Расположение реквизитов» настраивает отображение подчиненных реквизитов. Например «Качество» у «Номенклатуры» и т.д.

69.  L66. «В специальной позиции» означает крайнее правое расположение, но перед всеми ресурсами.

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

71.  L69. Чтобы открыть определенный вариант отчета программно, необходимо в переменную ПараметрыФормы дописать «Ключ варианта»:

  1. ПараметрыФормы = Новый Структура(“СформироватьПриОткрытии, Отбор, КлючВарианта”, Истина, Отбор, “Вариант1”);

72.  L70. Чтобы сделать фиксированные столбцы сверху или слева, нужно в модуле объекта отчета в событии «ПриКомпоновкеРезультата» написать:

  1. ДокументРезультат.ФиксацияСверху = 1;

  2. Справку по остальным методам можно найти в синтаксис помощнике по слову «ТабличныйДокумент».

73.  У отчета в модуле объекта можно обращаться напрямую к переменным:

  1. КомпоновщикНастроек – все, что есть на вкладке Настройки в СКД.

  2. СхемаКомпоновкиДанных – все, что есть на остальных вкладках СКД.

74.  L71. Программное создание отчета на СКД.

75.  L71. Можно написать функцию, которая возвращает табличный документ. А затем вызвать ее следующим образом: ПолучитьТабличныйДокумент().Показать();

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

76.  L72. Программно передать параметр в компоновку данных можно следующим образом:

  1. Схема = Отчеты.ПрайсЛист.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

  2. Настройки = Схема.НастройкиПоУмолчанию;

  3. Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

  4. Если Параметр <> Неопределено Тогда

  5.        Параметр.Значение = ТекущаяДата();

  6.        Параметр.Использование = Истина;

  7. КонецЕсли;

77.  L73. Отчет на СКД можно строить на основе внешних объектов. При этом на компоновке данных не работает автоматическое заполнение, поэтому его нужно обязательно заполнять вручную. Можно, например, взять информацию из другой базы программным образом, заполнить ею таблицу значений, а затем на основе этой таблицы значений строить отчет. Таким образом, можно объединять несколько информационных систем, даже если это не 1С. Внешний набор данных передается в модуле объекта отчета в событии «ПриКомпоновкиРезультата» (обязательно пишем СтандартнаяОбработка = Ложь);

78.  L74. Создание отчета на СКД по журналу регистрации действий пользователей

79.  L75-L77. Программное создание настроек отчета СКД.

80.  L78. Программное создание отбора, условного оформления отчета СКД.

81.  L79-L80. Программное создание схемы компоновки данных с нуля.

82.  L81-L82. Программная фиксация заголовка отчета. Ошибки при программной фиксации сверху, если пользователь установил отбор на отчет.

83.  L83. Как всегда открывать определенную (не основную) схему компоновки данных.

84.  L84. Работа с набором данных «Объединение»

85.  L85. Соединять наборы данных между собой можно на вкладке «Связи наборов данных». В нем используется левое внешнее соединение.

86.  L85. Преимущество соединения на уровне СКД – соединение запросов и объектов. Но нужно помнить, что запрос выполняется на стороне сервера СУБД, а СКД выполняется на стороне сервера приложений.

87.  L86. Устранение дублей строк при получении отчета по закупкам и продажам. Если нужно получить итоги по закупкам и продажам, устанавливая левое соединение по номенклатуре, обязательно нужно сгруппировать суммой итоги по продажам и итоги по закупкам. Представим что у нас в таблице Закупки была одна строчка «Хлеб 50 шт.», а в таблице Продажи две и более строк на 10 шт, 5 шт и т.д. При левом соединении у нас продублируются закупки ровно столько раз, сколько было продаж. Следовательно, нужно делать суммовую группировку.

88.  L87. Если пользователю понадобится отчет, в котором нужно выводить суммы продаж и закупок, а под ними вложенные детальные записи по документам, нужно делать группировку по номенклатуре НЕ в запросе, а на вкладке «Связи» компоновки данных. Тогда можно будет получить и итоговые суммы и детальные записи вплоть до документов продаж, без косяков с суммами по количеству.

89.  L88. Если нас не интересует группировка по количественным показателям, а нужно, например, получить только номенклатуру и дату из табличной части документа, то лучше поставить флажок «Без повторяющихся» на вкладке «Дополнительно».

90.  L88. В запросе можно выводить даже сам получаемый параметр. Для этого создаем новое поле и пишем &Период (или другое поле-параметр).

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

92.  L89. Полное соединение в запросе. Как работают связи наборов данных

93.  L90. В отчете нельзя использовать поля из разных не связанных наборов данных, в одной группировке. В разных группировках – можно.

94.  L91-L94. Организация произвольной иерархии документов, например. Для этого нужен иерархический справочник «Уровни документов» (с полем «Родитель») и у всех документов нужно добавить поле «Уровень» со ссылкой на этот справочник. После чего создается отчет на СКД с двумя связями наборов данных: 1. Получаем иерархию. 2. Получаем сами документы. Тогда в отчете мы сможем видеть многоуровневую вложенность.

95.  L95. На вкладке «Наборы данных» поле «Проверка иерархии» используется для организации отбора по уровню иерархии.

96.  L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» - то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка.

97.  L96. Флажок «Обязательная связь» на вкладке «Связи наборов данных» означает, что связь будет использоваться, если на вкладке «Настройки» выбрано хотя бы одно поле приемника. Если флажок снят – то связь будет использоваться, если в «Настройках» выбрано поле выражения источника.

98.  L96-L97. Чтобы прописать дополнительное условие связи на вкладке «Связи наборов данных», можно использовать поле «Условие связи».

99.  L96-L97. В поле «Начальное значение связи» на вкладке «Связи наборов данных» указывается элемент, начиная с которого нужно начать рекурсивно разворачивать набор данных.

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

101.      L98-L100. Вложенные схемы. Связь схем компоновки данных. Кнопка «Новый вложенный отчет» при щелчке на группировку. С помощью этих вложенных схем можно в типовых конфигурациях очень быстро разрабатывать новые отчеты, базируясь на существующих. Установка отбора по периоду на вложенной схеме

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

103.      L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»

104.      L102. Создание макетов отчета (произвольное расположение элементов). Создание макетов оформления (шрифт, цветовая гамма).

105.      L103. Создание макета оформления компоновки данных. Создается макет оформления в «Общие макеты» в дереве метаданных.

106.      L103. Измененные элементы макета подсвечиваются жирным шрифтом.

107.      L103. Макет оформления можно создавать на основании предопределенного макета (Основной, Море, Арктика…). Для этого в созданном макете нужно нажать кнопку «Стандартный макет…» внизу слева.

108.      L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля».

109.      L104. Создание произвольного макета компоновки данных.

110.      L104. Не обязательно рисовать макет всего отчета. Можно добавить в макет только поле группировки. Тогда будут оформляться только макеты группировки. А остальные поля будут оформлены в соответствии с выбранным макетом оформления.

111.       L105. Запомнить что такое «Заголовок группировки», «Заголовок иерархии» и т.п. для произвольного макета тяжеловато. Чтобы было проще – можно создать в «Общие макеты» произвольный макет оформления и, открыв его, станет визуально понятно у каких группировки какие названия.

112.      L106. Если вы проводите мышью над полем и появляется значок с крестом и лупой, это означает что по этому полю возможна расшифровка.

113.      L106. Чтобы заработала расшифровка, нужно в произвольном макете для ячейки с параметром указать свойство «Параметр расшифровки». А затем задать выражение для этого параметра в параметрах макета (табличка слева, на той же вкладке «Макеты»). Причем если мы выбираем просто поле для расшифровки (например «Номенклатура»), то обязательно нужно написать и выражение (то же «Номенклатура»).

114.      L106. Свойство «ИспользованиеРасшифровки» влияет на то, как будет открываться расшифровка – при щелчке на ячейку, на любое место в строке, или без обработки.

115.       L107-L110. Можно сделать произвольную обработку события двойного щелчка по ячейке. Для этого необходимо создать свою форму отчета СКД и для табличного поля «Результат» задать событие «ОбработкаРасшифровки».

 

www.buravov.pro

Скачать файлы

Наименование Файл Версия Размер
115 полезностей от Буравова Андрея по курсу СКД Евгения Гилёва

.docx 33,96Kb
23.05.19
867
.docx 33,96Kb 867 Скачать
Электронное оглавление (обработка) от Крынецкого

.epf 12,97Kb
10.04.12
199
.epf 12,97Kb 199 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
0. Flashill 327 08.04.12 09:47 Сейчас в теме
Посмотрел 5,5 часовой курс по системе компоновки данных.
Нашел невероятное количество не только необходимого, но и примеры не очевидного поведения СКД.

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

Перейти к публикации

1. mtv:) 1007 08.04.12 09:47 Сейчас в теме
(0) Хорошая статья. Полезеная шпаргалка по курсу.

Заметил опечатку в пункте 76, в строке

Схема = Отчеты.ПрайсЛист.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных";

вконце строки не хватет закрывающей скобки.
Flashill; +1 Ответить
2. Flashill 327 08.04.12 17:15 Сейчас в теме
(1) mtv:), спасибо! Еще несколько опечаток наберу и исправлю статью.
12. Flashill 327 10.04.12 09:37 Сейчас в теме
(1) mtv:), исправил (добавил скобку).
(9) gavrikprog, (10) Alraune, (11) echo77, шрифт исправил.

(11) echo77, спасибо за оглавление! Прикрепил его к статье.
3. pwn 41 08.04.12 19:45 Сейчас в теме
Полезная "выжимка". Автору спасибо. Сам курс в свое время слушал на плеере, коротая время в метро. Сегодня с удовольствием прочитал данную статью.
8. Flashill 327 09.04.12 10:06 Сейчас в теме
(3) pwn, (4) KliMich, (5) fnv, всегда пожалуйста. Рад что пригодилось :)

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

(7) gavrikprog, не могли бы вы дать более развернутый конструктивный комментарий? Что именно исправить? Я исправлю.
4. KliMich 08.04.12 22:14 Сейчас в теме
Отличные "полезности" к курсу Гилева! Автору Респект!
5. fnv 09.04.12 06:13 Сейчас в теме
6. Sybr 237 09.04.12 09:37 Сейчас в теме
Я то по названию и простоте душевной подумал, что будет аж 115 полезностей о которых не рассказали в бесплатном курсе.
7. gavrikprog 110 09.04.12 09:37 Сейчас в теме
9. gavrikprog 110 09.04.12 11:01 Сейчас в теме
шрифт уменьшить примерно как тут http://infostart.ru/public/124145/

Расставить отступы.
10. Alraune 1478 09.04.12 11:16 Сейчас в теме
Я бы не стала уменьшать шрифт, если он немного крупнее, читать легче.
__
Хотя сам шрифт, может, стоит изменить, при распечатке "версии для печати" буквы кое-где "наехали" друг на друга
11. echo77 1157 10.04.12 06:59 Сейчас в теме
Да, шрифт лучше уменьшить - пусть будет обычный. Если кому надо увеличить - покрутит колесо или изменит размер сам.
Опечатка в анонсе:
нет хватает времени


Можете прикрепить оглавление к курсу, сделанное на 1С:
http://depositfiles.com/files/6gw21czze
Flashill; +1 Ответить
13. vlengin 10.04.12 12:12 Сейчас в теме
Начал читать, и бросил. Небезопасное чтиво: весь материал пропущен через призму собственного восприятия, иногда далекого от первоисточника.
Как пример:
У Вас:
L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система.
У Гилева:
L10. Отборы в пакетном запросе.
Финальная фраза урока: Т.е. отбор будет работать на все таблицы пакеты запроса, где встречается соответствующее поле.
14. Flashill 327 10.04.12 12:49 Сейчас в теме
(13) vlengin, оригинал я приложил. Статья так и называется "115 полезностей от Буравова Андрея". Так что естественно почти весь материал пропущен через призму моего восприятия.

Я не зря написал к каждому пункту номер урока вида L10, который вы можете самостоятельно посмотреть и выяснить первоначальный смысл Гилева.

Вот если я исковеркал смысл, укажите где именно и как будет правильно. Я исправлю.

Касательно L10 - что я написал не верно?
15. vlengin 10.04.12 14:43 Сейчас в теме
(14) Flashill,
То что если установить отбор "по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы." - это очевидно и это, конечно, верно.
Где хоть слово о пакетых запросах, и особенности отборов в них. В примере урока установка отбора на параметры виртуальных таблиц - это лишь частный случай отбора полей таблиц пакетного запроса.
Суть урока - "Отборы в пакетном запросе", и причем здесь параметры виртуальных таблиц.
Поэтому статью надо было назвать не 155 "полезностей", а "СКД. Как его понял я".
16. Flashill 327 10.04.12 15:00 Сейчас в теме
(15) vlengin, пожалуйста изложите текст, который вы хотите вставить вместо этого пункта?
17. vlengin 10.04.12 15:08 Сейчас в теме
(16) Flashill,
а я его (текст) уже писал, Вы и не заметили. Цитируем Гилева:
"Отбор будет работать на все таблицы пакеты запроса, где встречается соответствующее поле".
18. echo77 1157 10.04.12 19:58 Сейчас в теме
в (14) дельное замечание - если используете отбор в настройках СКД и СКД выполняет отбор в запросе пакета - не стоит удивляться непредсказуемым результатам
19. Alexey55 11.04.12 08:20 Сейчас в теме
вчера делал отчет, и как раз была такая ситуация с отбором..часа 3 не мог понять как так получается
сначала думал в запросе дело.. потом запрос из отчета на скд скопировал в консоль отчетов и получил нужный результат, отличающийся от результата отчета на СКД

а так автору спасибо за труд!
31. Flashill 327 19.04.12 23:23 Сейчас в теме
(19) Alexey55, (20) artbear, (21) al_zzz, (22) scream, (23) Clod, (24) electronik, (26) zspr, (27) SERJ_1CC, (29) vitn, (30) Sunhare,
благодарю, коллеги! Приятно осознавать оказанную помощь.

(28) Gesperid, есть разные консоли отчетов. Попробуйте другую. Не во всех есть эта вкладка.
34. a1ex4ndr 1 23.04.12 10:59 Сейчас в теме
(31) Flashill, а какую консоль отчетов использовали Вы?
35. Flashill 327 25.04.12 06:18 Сейчас в теме
(34) a1ex4ndr, если не ошибаюсь, с диска ИТС.

http://infostart.ru/public/57704/ - довольно интересная консоль отчетов.
68. servs 68 26.01.13 16:16 Сейчас в теме
Краткий конспект - правильный подход, не зря его применяют в учебных заведениях.
Призываю автора продолжать в том же духе, не обязательно по видео-курсам. Можно просто заметки на какую-либо тему в 1С.
Была идея сделать что-то подобное именно для этого видео-курса, но потом нашел эту статью. Так что +.

Теперь по содержанию:
1. "L10. Если мы указали отбор (на вкладке Настройки – Отбор) по какому-либо полю, содержащемуся в виртуальных таблицах, СКД автоматом наложит нужные параметры в виртуальные таблицы. Таким образом, СКД очень умная система."
Убери эту фразу потому что в ней мало полезности (можно сказать что это минус СКД см. пост (19)).

2. Отреагируй на пост (20), там дельное замечание. Прояви уважение к Гилеву и его команде. Ему спасибо за курс в первую очередь.
20. Модератор раздела artbear 11.04.12 09:19 Сейчас в теме
ОФФ/2
заметки довольно интересные, но главное - это скромность автора, не постеснялся выставить свое ФИО в заголовок перед автором курсов :(
21. al_zzz 168 11.04.12 15:53 Сейчас в теме
Спасибо, Андрей!
Сам сейчас обучаюсь по видеокурсу и очень нехватало мне Вашего оглавления - даже сам начал писать. Правда, на листочке. :-)
22. scream 49 11.04.12 23:02 Сейчас в теме
23. Clod 12.04.12 10:50 Сейчас в теме
Сей труд полезен прежде всего как оглавление. Странно, что Гилев не сделал этого.
artbear; Flashill; +2 Ответить
25. vlengin 13.04.12 09:33 Сейчас в теме
(23) Clod,
У Гилева, есть и подробное оглавление и тезисные слайды к урокам, все зависит от источника получения курсов.
24. electronik 12.04.12 11:23 Сейчас в теме
Заметки интересные и что самое главное актуальные. Узнал много интересного и полезного. Автору Респект и Уважение ну конечно заслуженое 5+
26. zspr 22 13.04.12 16:51 Сейчас в теме
Полезная статья. Автору спасибо.
27. SERJ_1CC 48 16.04.12 09:43 Сейчас в теме
А я только благодаря этой статье узнал о курсе. Большое спасибо, обязательно воспользуюсь и курсом и вашей статьей! Как раз не хватает полноценных знаний по СКД!!!
28. Gesperid 2 16.04.12 10:26 Сейчас в теме
По 3-му пункту, ткните где в UCR вкладка «Макет для табличного поля документа»?
29. vitn 18.04.12 23:55 Сейчас в теме
Автору огромный респект! Молодец!
30. Sunhare 3 19.04.12 12:35 Сейчас в теме
32. Svetlana_K 20.04.12 18:05 Сейчас в теме
Спасибо огромное. Очень интересно.
33. w1ncent 22.04.12 15:43 Сейчас в теме
Спасибо за полезную инфу.
36. e.kogan 1853 25.04.12 11:21 Сейчас в теме
" Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки." - это с каких пор?
"96. L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» - то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка." - тот же вопрос. ПКМ - "Выбрать", вот вам и группа.
"103. L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»" - а при чём тут СКД?
"108. L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля»." - в последних версиях платформы есть такая штука, как настройка "Авто позиция ресурсов" на "Других натсройках".
Flashill; +1 Ответить
41. Flashill 327 03.05.12 22:01 Сейчас в теме
(36) e.kogan,
" Причем необходимо помнить, что пользовательские поля выводятся только на уровне Детальных записей и не попадают в группировки." - это с каких пор? - возможно ошибся.
"96. L95. В пользовательском режиме отчета СКД, если задан вид отбора «В группе» - то нельзя выбирать элементы через окно выбора. Зато можно ввести наименование элемента и выбрать его из выпадающего списка." - тот же вопрос. ПКМ - "Выбрать", вот вам и группа. - Имеется ввиду при отборе "В группе", иметь возможность выбирать элементы.
"103. L101. Можно создавать свой формат даты, например вида «Апрель 2010 г.»" - а при чём тут СКД? - Да, формат можно создавать не только в СКД.
"108. L104. Стандартные средства СКД НЕ позволяют выводить ресурсы перед простыми полями, даже если мы задали порядок на вкладке «Выбранные поля»." - в последних версиях платформы есть такая штука, как настройка "Авто позиция ресурсов" на "Других настройках". - Здорово, проверил. Если поставить "Авто позиция ресурсов" = "Не использовать", то ресурсы будут располагаться в том порядке, в котором их задашь среди "Выбранных полей". Спасибо!

(37) rikony, пожалуйста конкретнее. Что хотите исправить?

(38) phosphorror, огромное спасибо за супер-мега-гипербализованное почтение :)

(39) maksim.s, (40) bar_s, всегда пожалуйста! :)
43. e.kogan 1853 04.05.12 14:55 Сейчас в теме
37. rikony 25.04.12 12:22 Сейчас в теме
38. phosphorror 02.05.12 15:13 Сейчас в теме
Отличная статья. Побольше бы таких. Жму автору его могучую гениальную и интеллектуальную руку. Побольше бы таких вдохновенных статей столь же глубоких и всесторонне-охватывающих проблемную область. Эта колоссальное по своему масштабу и инеллектуальному размаху творение обогатило сокровищницу знаний системы 1с и явило собой венец творения в данной сфере научной мысли.
Flashill; +1 Ответить
39. Gandalf Белый 02.05.12 15:56 Сейчас в теме
Большое спасибо! Очень позновательно и интересно!!! Узнал много нового!
Буду ждать еще подобных статей!
40. bar_s 03.05.12 17:16 Сейчас в теме
Автор, спасибо, отличная статья. Из нее узнал про курс, надо ознакомится и с ним.
42. rikony 04.05.12 09:05 Сейчас в теме
Буравов Андрей
наши взгляды просто отличаются :)
44. opiumdx 06.05.12 14:34 Сейчас в теме
Спасибо за статью, конструктивно и понятно. Нашел для себя интересные и полезные вещи.
53. Flashill 327 22.06.12 17:33 Сейчас в теме
(44) opiumdx, (45) sustav86, (47) aspirator23, (48) Psylocibine, (49) lyashuk2012, (50) alekseies, (51) alcoholic, (52) testmode,
всегда пожалуйста, дорогие! :)


(46) eli1984, пожалуйста напишите пару примеров вашего видения улучшения статьи?
45. sustav86 06.05.12 19:28 Сейчас в теме
Спасибо больщое, очень помогла как раз нашел решения проблемы, так держать...
46. eli1984 18.05.12 14:20 Сейчас в теме
Статья полезная, но когда долго читаешь, действительно надоедает, что уже последующее пункты не понимаешь о чем речь.
А можно в более читаемый вид привести статью? Чтобы интересно было читать.
47. aspirator23 424 20.05.12 18:43 Сейчас в теме
Посмотреть курс, более правильно. И несмотря, на критику, спасибо автору. Меня статья подвигла на то чтобы курс пересмотреть. Курс был, времени посмотреть не было. Если бы не статья, может бы и не собрался. Посмотрел курс - очень полезен оказался. Так что плюс за популяризацию знаний среди населения 1с.
Flashill; +1 Ответить
48. Psylocibine 20.05.12 22:52 Сейчас в теме
Большое спасибо! Очень позновательно и интересно, Узнал много нового!
Буду ждать еще подобных статей!
49. lyashuk2012 21.05.12 08:03 Сейчас в теме
Так держать!!! Автору респект.
50. alekseies 22.06.12 10:38 Сейчас в теме
Полезная штука к курсу Гилева, некогда копаться, а тут коротко и ясно .....
51. alcoholic 22.06.12 10:42 Сейчас в теме
спасибо, очень интересно
52. testmode 25 22.06.12 12:55 Сейчас в теме
Полезная статья Всем советую.
54. _apelsin4ik 28.06.12 11:05 Сейчас в теме
Отличная выжимка основных идей курса. В принципе после этого весь 5.5 часовой курс можно не смотреть, а только основные моменты, которые вызвали вопросы) Автор молодец, очень нужная работа.
59. Flashill 327 22.08.12 12:26 Сейчас в теме
(54) _apelsin4ik, (55) aimerlive, (56) maxim305, (57) ksvd, очень рад что вам помогает :)

(58) NPMar, рекомендую делать такие конспекты на каждый курс который вы проходите - хоть онлайн, хоть офлайн. Возможно будет поначалу тяжело. Но главная цель - узнать из курса что то новое и записать это для себя.
55. aimerlive 13.07.12 12:50 Сейчас в теме
Спасибо за статью, Все по делу.
56. maxim305 18 19.07.12 06:08 Сейчас в теме
Спасибо, полезный материал для изучения и повышения своей грамотности!
57. ksvd 11.08.12 10:06 Сейчас в теме
Сейчас, с такими темпами появления новой информации, чтобы успевать все изучить, а не просто бегло просмотреть, чтобы держаться на уровне - такие статьи, как эта, или конспекты, или курсы как например видеокурс Гилева Быстрый старт очень нужны. Надеюсь их будет больше. Спасибо
58. NPMar 22.08.12 11:50 Сейчас в теме
Спасибо, Андрей! Ну просто супер! Послушать весь курс сплошняком, конечно не плохо. Но потом найти нужное, просто невозможно. Очень Вам благодарна!
60. NPMar 22.08.12 14:00 Сейчас в теме
Да, Андрей, я посмотрела в конфигураторе, как Вы это делаете. Даже для меня, новичка в восьмерке, все понятно. Я могу и другие курсы так сделать и не тлько курсы. Еще раз, очень благодарю. Мне это очень пригодится!
Flashill; +1 Ответить
65. Flashill 07.12.12 12:01 Сейчас в теме
(60) NPMar, (61) Alex7774, (62) fnv, (63) wunderland, спасибо за благодарности!

(64) Alexey26, похоже в новой версии конфигурации переместили этот раздел, теперь он здесь:
66. Alexey26 2 08.12.12 16:39 Сейчас в теме
(65) Андрей Буравов,

Alexey26, похоже в новой версии конфигурации переместили этот раздел, теперь он здесь:


спасибо Вам за оперативный и наглядный ответ со скриншотом и за саму публикацию тоже, разумеется! Оказывается, я вообще не там искал этот раздел... Я думал найти его в справке в Конфигураторе)
67. Flashill 08.12.12 17:37 Сейчас в теме
(66) Alexey26, как раз там (в справке в Конфигураторе) этот раздел и находится :)
61. Alex7774 30 29.08.12 19:10 Сейчас в теме
62. fnv 26.09.12 11:38 Сейчас в теме
Спасибо! узнала, что есть бесплатный курс:)))
63. wunderland 201 04.12.12 11:43 Сейчас в теме
Снимаю шляпу. Создать учебный курс довольно сложно. А написать на него коментарии, возможно, еще сложнее...
64. Alexey26 2 07.12.12 11:48 Сейчас в теме
Подробное описание дополнительных функций СКД можно найти в справке F1 – Встроенный язык – Общие объекты – Система компоновки данных – Язык выражений системы компоновки данных – Функции языка выражений системы компоновки данных.


Кому-нибудь удалось найти в справке данный раздел?
69. akor77 918 16.03.13 23:50 Сейчас в теме
То, что нужно! Благодарю!
Оставьте свое сообщение

См. также

Нечеткое сравнение строк. Метод Джаро-Винклера на 1С Промо

Математика и алгоритмы v8::УФ 1cv8.cf Абонемент ($m)

Схожесть строк. Метод Джаро-Винклера. В обработке реализован алгоритм нечеткого сравнения строк.

3 стартмани

20.04.2018    18399    76    Serg1701    19    

Treemapping. Демонстрационная обработка

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Пример реализации диаграммы вида Treemap на 1С

1 стартмани

27.02.2020    2331    8    randomus    4    

Рекомендательный сервис на основе коллаборативной фильтрации на 1С. Расширение формы подбора для УТ 11.4

Оптовая торговля Розничная торговля Практика программирования Математика и алгоритмы v8 ERP2 УТ11 КА2 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

В данной разработке реализован механизм рекомендаций товаров по принципу схожести товаров в корзине на основе алгоритма Item-to-Item от Amazon. Разобран алгоритм с демо базой и сделано расширение для УТ11.4 которое добавляет в форму подбора таблицу рекомендаций. Протестировано на 8.3.13.1865 на Управление торговлей, редакция 11 (11.4.8.63)

3 стартмани

25.09.2019    8275    12    informa1555    24    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    20974    21    Stepa86    44    

Определение кратчайших путей, критических путей одним запросом Промо

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Еще два примера применения алгоритма каскадного матричного умножения, впервые описанного в статье «Транзитивное замыкание запросом» http://infostart.ru/public/158512/

1 стартмани

07.04.2014    36562    22    ildarovich    31    

Еще раз о рабочих днях. Быстрый способ расчета в запросах

Практика программирования Математика и алгоритмы Разработка v8 Абонемент ($m)

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

1 стартмани

20.06.2019    6043    1    Alxby    11    

Искусственный интеллект для змейки. Часть 1: Кратчайший/длиннейший путь, Гамильтонов цикл

Математика и алгоритмы Игры v8 Россия Абонемент ($m)

Различные варианты алгоритмов для игры "Змейка".

1 стартмани

07.06.2019    5965    3    Alex_YAM    2    

Функциональное программирование в 1С

Практика программирования Математика и алгоритмы Разработка v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.03.2019    7981    0    alexey.kutya    26    

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов Промо

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    47423    15    DarkAn    86    

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

Практика программирования Математика и алгоритмы Разработка v8 Абонемент ($m)

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

1 стартмани

04.03.2019    5447    1    Alxby    4    

Жизненный цикл управляемой формы. Шпаргалка разработчика

Практика программирования Математика и алгоритмы v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

29.06.2018    29065    52    stas_ganiev    26    

Принципы ООП в 1С на примере реализации pattern Decorator

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

21.06.2018    10954    4    lazarenko    6    

Агрегатное суммирование строк в запросе – сложно, но не невозможно Промо

Математика и алгоритмы v8 Абонемент ($m)

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

1 стартмани

09.09.2013    76206    32    ildarovich    53    

Алгоритмы и регламентные задания (расширение)

Математика и алгоритмы Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Универсальный механизм для создания алгоритмов и регламентных задач.

5 стартмани

28.05.2018    10271    7    pm74    39    

Строим "фасады" в 1С

Практика программирования Математика и алгоритмы v8 Россия Абонемент ($m)

Как реализовать функционал, чтобы не было “мучительно больно” при расширении требований.

1 стартмани

04.05.2018    17018    3    ktb    41    

Случайность, совпадение, закономерность. Генератор случайных чисел

Практика программирования Математика и алгоритмы Игры v8 1cv8.cf Абонемент ($m)

Объект ГенераторСлучайныхЧисел удобно выдает случайные числа в заданном интервале значений. Исследование особенностей, рассуждения на тему случайных чисел, практика применения. Увлекательно в игровой форме можно исследовать работу генератора случайных чисел.

1 стартмани

20.01.2018    22775    2    Ликреонский    58    

Полная методичка к курсу "Программирование 8.2" Промо

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

580 страниц знаний! Публикую методичку, а точнее стенограмму курса по подготовке программистов 8.2.

10 стартмани

09.01.2014    51024    109    GROOVY    100    

Github и 1С. Пошаговая инструкция на конкретном примере

Математика и алгоритмы v8 Абонемент ($m)

Статья для тех, у кого есть неудержимое желание программировать и хочется доработать какую-то конфигурацию (или проект на 1С), выложенный на Github, но останавливают незнакомые слова Git, Github, Fork, Commit, Pull request, Merge, Issue.

1 стартмани

26.10.2017    42385    4    BlizD    51    

Планы обмена 1С: решение проблемы блокировок при помощи средств SQL Server

Практика программирования Математика и алгоритмы v8 Абонемент ($m)

Небольшое исследование возможности улучшить работу планов обмена 1С средствами SQL Server: view + triggers (представление + триггеры). В статье описывается один из приёмов SQL программирования для решения проблем блокировок, когда основные структуры данных изменить нельзя.

1 стартмани

10.01.2017    12770    3    zhichkin    4    

Многопоточная выгрузка одного сообщения обмена

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 Абонемент ($m)

Публикация описывает, как можно распараллелить выгрузку одного сообщения обмена.

1 стартмани

05.12.2016    14702    1    zhichkin    24    

Разработка синтаксического анализатора языка запросов на языке 1С Промо

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Пример разработки генератора для PEG парсера

1 стартмани

03.12.2014    23986    1    so-quest    70    

1С+Классы. Версия-0

Разработка внешних компонент Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Разработано ООП-расширение языка 1С, включающее (но не ограничивающееся): Классы как абстрактные типы данных с элементами «переменная», «свойство», «функция», «процедура»; Интерфейсы как абстрактные классы без элементов состояния («переменная») и без привязки к реализации методов (свойств, процедур, функций) при определении; Имплементация (реализация) интерфейсов классами; - одиночное открытое наследование; Области видимости «внутренняя» (private), «экспорт» (public), «защищенная» (protected); Статические элементы классов (общие для всех экземпляров класса); Замещение (переопределение реализации) методов при наследовании – «виртуальные методы, свойства»; Сокрытие (затенение) обычных (не замещаемых) элементов при наследовании; Перегрузка процедур и функций по количеству и типам данных аргументов; Конструкторы класса; Деструктор класса; Слабые ссылки; Делегаты.

1 стартмани

28.10.2016    19397    1    IntelInside    68    

Генетический алгоритм для решения простой задачки

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Генетический алгоритм в решении задачи: Необходимо расставить правильно (по другому) скобки, чтобы получилось 850 (1 + 2) (3 + 4) (5 + 6) (7 + 8) (9 + 10) (11 + 12) (13 + 14) + 15

1 стартмани

26.09.2016    9298    5    eugeniezheludkov    4    

Объектные блокировки

Практика программирования Математика и алгоритмы v8 Россия Абонемент ($m)

При работе с объектными данными (справочники, документы, планы счетов и т.д.) система «1С:Предприятие» обеспечивает два вида объектных блокировок: пессимистическую и оптимистическую. Они позволяют выполнять целостные изменения объектов при одновременной работе нескольких пользователей.

1 стартмани

17.08.2016    28811    9    Ranis1286    5    

Еще один взгляд на проблему «жизнь без последовательностей». Часть вторая (практическая) Промо

Математика и алгоритмы v8 КА1 БП2.0 УТ10 Розница УПП1 УНФ Россия Абонемент ($m)

В [1 - http://infostart.ru/public/62938/] был предложен метод корректировки списаний по партиям при изменении документов задним числом. Использование данного метода позволяет контролировать остатки при неоперативном проведении и поддерживать учет по партиям всегда в актуальном состоянии, то есть обходиться без механизма последовательности документов. Собственно метод заключался в решении задачи правильного списания по партиям как задачи линейного программирования. В доказательство работоспособности метода приводится следующая «каркасная» конфигурация «Полигон», в которой этот метод реализован.

1 стартмани

19.08.2010    29025    18    ildarovich    35    

Использование методов глобального контекста в системе компоновки данных или недокументированные возможности СКД

Практика программирования Математика и алгоритмы v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

05.08.2016    35310    26    klinval    40    

Еще один способ расчета остатков на каждый день в запросе

Математика и алгоритмы Практика программирования v8 Абонемент ($m)

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

1 стартмани

24.04.2016    32416    48    ildarovich    23    

Пример рекурсивной выгрузки иерархической структуры в XDTO

Математика и алгоритмы Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

Решил реализовать иерархию в пакете XDTO и выгрузить ее рекурсивно. Задача оказалась нетривиальной, хотя и весьма простой. Изысканиями решил поделиться с народом, чтобы не пропадало народное добро.

1 стартмани

26.02.2016    32707    15    starik-2005    3    

Включаем звук в 1С. Доступно и всерьез. Промо

Математика и алгоритмы Универсальные функции v8 1cv8.cf Абонемент ($m)

Как сделать воспроизведение звука в 1С без внешних компонентов? Решаем средствами интернета. Для тонкого, толстого и web-клиента.

1 стартмани

30.12.2013    79336    150    sikuda    37    

Нелинейная многомерная оптимизация - это просто. Часть 3. Имитация отжига

Инструментарий разработчика Математика и алгоритмы Универсальные функции v8 1cv8.cf Абонемент ($m)

Метод имитации отжига для поиска оптимального решения. И, как обычно, универсальная функция поиска этого самого решения.

1 стартмани

13.10.2015    17768    23    dusha0020    5    

Нелинейная многомерная оптимизация - это просто. Часть 1. Градиентный спуск

Математика и алгоритмы Универсальные функции Практика программирования v8 Абонемент ($m)

Рассказ с демонстрацией возможностей градиентного метода поиска оптимального решения.

1 стартмани

07.07.2015    17565    7    dusha0020    19    

Пример сериализации объектов в 1С 8.3 и их восстановления из сериализованных данных

Математика и алгоритмы Обмен через XML Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

05.07.2015    26668    74    katkov_a    29    

Демо связи веб сервисов 1С и php Промо

Практика программирования Математика и алгоритмы WEB v8 1cv8.cf Абонемент ($m)

Демонстрация обращения к веб сервису 1С из php. Пример простейший, уровня hello world. Дана одна страница и информационная база 1С с одним справочником и одним веб сервисом. Веб сервис выдаёт содержимое справочника по запросу странички.

1 стартмани

19.07.2013    31840    47    Трактор    20    

Степень сходства двух наименований справочника

Математика и алгоритмы v7.7 v8 Абонемент ($m)

Статья посвящена исследованию следующего вопроса: необходимо сравнить 2 наименования справочников с целью вычисления их степени сходства. По задумке, степень сходства должна выражаться в процентах.

1 стартмани

25.02.2015    20278    2    etmarket    43    

Написание простой обработки через тестирование

Математика и алгоритмы Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

24.02.2015    26450    11    Alien_job    40    

Парсинг сайта без использования встроенного браузера для начинающих

Практика программирования Математика и алгоритмы WEB v8 1cv8.cf Абонемент ($m)

Данная статья показывает пример парсинга одного конкретного сайта со своей структурой, на основе которого можно понять суть, методы и без особых проблем парсить другие сайты. Здесь описано: подключение к серверу, сохранение html-страницы на диск, загрузка и цикличный обход ее структуры, рекурсивный парсинг, загрузка картинок по ссылке на диск.

1 стартмани

20.11.2014    38853    113    angernaughts    36    

Конспект лекций по курсу «Автоматизированные информационные системы» Промо

Математика и алгоритмы v8 1cv8.cf Россия Абонемент ($m)

Конспект лекций по курсу «Автоматизированные информационные системы» составлен на основании требования Государственного образовательного стандарта среднего профессионального образовании к содержанию и уровню подготовки выпускника по специальности 230103 «Автоматизированные системы обработки информации и управления». В конспекте есть общие сведения о методике 1С:Профкейс. Конспект лекций разработал: канд. техн. наук, доцент Космачев С.Н.

1 стартмани

07.06.2012    24111    9    ksnik    19    

Куайн (Программа, выводящая свой исходный код на экран)

Математика и алгоритмы Практика программирования v8 1cv8.cf Абонемент ($m)

Обработка позволяет насладится реализацией этой интересной, и совершенно бесполезной с практической точки зрения задачей.

1 стартмани

25.08.2014    9275    0    atridis    7    

Пророк в своем отечестве или Читаем XML с помощью XDTO

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

29.01.2014    43914    24    majmyl    53    

БСП, использование типового механизма 1с для запуска регламентных заданий с заранее подготовленными настройками.

Математика и алгоритмы БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Описание варианта запуска регламентного задания на БСП, без изменения типовой конфигурации.

1 стартмани

03.01.2014    35129    113    almas    7    

Автоформатирование кода Промо

Сервисные утилиты Обработки Чистка базы Справки Производительность и оптимизация (HighLoad) Инструментарий разработчика Практика программирования Универсальные обработки Решение задач на 1С:Специалист Математика и алгоритмы Администрирование данных 1С Разработка Тестирование и исправление Стартеры 1С v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.12.2012    38880    46    Sibars    57    

Методический материал. Работа с запросами

Практика программирования Математика и алгоритмы v8 Абонемент ($m)

Краткое методическое пособие для изучения запросов в 1С

1 стартмани

23.12.2013    17617    12    rayastar    27    

Определитель матрицы

Практика программирования Математика и алгоритмы v8 Абонемент ($m)

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

1 стартмани

28.11.2013    12167    8    zaxarovsky    8    

Квадратный корень в запросе 1С

Практика программирования Математика и алгоритмы v8 Абонемент ($m)

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

1 стартмани

24.10.2013    26336    4    Elisy    53    

Технология создания коммерческих разработок на базе Базовой конфигурации "Управление Торговлей, ред.10.3" Промо

Математика и алгоритмы Рабочее место v8 v8::ОУ УТ10 УУ Абонемент ($m)

Создав однажды небольшую надстройку на базе конфигурации "УТ Базовая, ред.10.3", впоследствии разработка расширилась до неузнаваемости и приросла функционалом. Что удивительно, так это то, что разработка представляет собой внешнюю обработку вкупе со стандартными механизмами базовой версии, а значит не требует дополнительного конфигурирования БД. О том, как и что я реализовал, пойдет речь в данной статье.

1 стартмани

11.03.2012    25062    0    Rustig    93