Kuznietsov Ivan

674
Рейтинг

Ivon



  •   Регистрация: 23.10.2008 (15 лет назад)

  •   Был(а) на сайте: 23.04.2024

Друзья
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Гордей Голиков
  • Андрей Волин
  • Дмитрий Живето
Подписчики 12

Группы

Профессиональный разработчик

Рейтинг 674

Разбор областей и параметров печатной формы MXL и генерация кода заполнения. Обработка

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

Назначение обработки - выделение областей и параметров из печатной формы и генерация кода заполнения печатных форм и отчетов на базе табличного документа 1С

1 стартмани

05.09.2020    6844    8    Ivon    0       

13

Разбор адреса на составляющие с помощью Яндекс API и Google API

Инструменты и обработки Для всех Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) WEB-интеграция

Есть адрес строкой, а нужно разбить его на составляющие? Для этого не обязательно писать собственный код, пользуемся Яндекс API и Google API.

1 стартмани

10.02.2017    43437    166    Ivon    26       

48

Управляемая форма для замены Таблица.ВыбратьСтроку()

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

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

1 стартмани

09.03.2016    16466    48    Ivon    4       

7

Шкала в строке состояния

Статья Программист Платформа 1С v8.3 Windows Бесплатно (free) Нет файла Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    16690    Ivon    26       

50

Каскадная пометка удаления и удаление записей регистров.

Инструменты и обработки Для всех Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Внешняя обработка (ert,epf) Свертка базы Чистка данных

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

1 стартмани

10.10.2013    15836    16    Ivon    7       

2

Передача результата запроса в таблицу управляемой формы. Мой алгоритм.

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free) Нет файла Запросы

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

07.12.2011    56560    Ivon    20       

31

Произвольная таблица умножения или как построить отчет с неизвестным количеством строк и столбцов

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m) Внешняя обработка (ert,epf) Механизмы платформы 1С

Случается, что нужно сделать отчет, в котором заранее неизвестно количество строк и столбцов. Каждый решает такую задачу по-своему: кто-то использует СКД, кто-то рисует вручную, кто-то компанует в Екселе. Здесь небольшой пример, как это можно реализовать с помощью шаблона.

1 стартмани

29.08.2011    16596    228    Ivon    19       

25

Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании

Статья Системный администратор Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Россия Windows Бесплатно (free) Нет файла Архивирование (backup)

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

20.01.2011    33356    Ivon    12       

26

Комментарии

DevBAF не выводит значение Период в запросе из регистра накопления#1 08.03.24 11:54
Установили последнюю версию BAF, поломался вывод из регистров накоплений по периоду ДЕНЬ.
Запрос простейший:
Код
Запрос = Новый Запрос;
ТекстЗапроса = "        
        |ВЫБРАТЬ
        |  ГВСОбороты.Период,
        |  ГВСОбороты.Договор
        |ИЗ
        |  РегистрНакопления.ГВС.Обороты(&Дата1, &Дата2, День) КАК ГВСОбороты";
        Запрос.Текст = ТекстЗапроса;
        Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
        Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));

Выборка выдает значения Договор, но Период возвращает пустую дату.
При этом если заменить периодичность на Регистратор или Секунда или Месяц - то возвращает заполненный Период.
Кроме того замечено, что если запрос изменить следующим облазом, чтобы данные вначале записались во временную таблицу, а потом вывести все из временной таблицы:
Код
ТекстЗапроса = "        
        |ВЫБРАТЬ
        |  ГВСОбороты.Период,
        |  ГВСОбороты.Договор
        |Поместить ВРТаб
        |ИЗ
        |  РегистрНакопления.ГВС.Обороты(&Дата1, &Дата2, День) КАК ГВСОбороты
        |;
        |ВЫБРАТЬ
        |  ВРТаб.Период,
        |  ВРТаб.Договор
        |ИЗ
        |  ВРТаб КАК ВРТаб";

то реквизит Период будет заполнен, а не пустым.
При этом, если подключить SQL базу обратно на 1С, то все работает и Период выводится.
DevВыборка в запросе из периодического регистра сведений данных на дату из строки запроса#58 28.11.21 12:24
(57) Примерно так:
Текст запроса
DevВыборка в запросе из периодического регистра сведений данных на дату из строки запроса#56 26.11.21 16:51
(55) У вас не полностью запрос приведен. Дайте полный текст, я переделаю под свой вариант.
DevВыборка в запросе из периодического регистра сведений данных на дату из строки запроса#54 26.11.21 11:28
(53) Вложенные таблицы начинают дико тормозить, когда надо работать с очень большим количеством строк в результате. Временные таблицы с индексами в данном случае гораздо производительнее. Кроме того, если вам надо работать с одним и тем же результатом выборки более одного раза, то вложенные таблицы придется вызывать нужное количество раз в каждом соединении, а значит это хранение нескольких копий результата по сути одной и той же выборки, соответственно одна и та же вложенная выборка так же должна быть вызвана нужное количество раз. Временные таблицы можно вызывать произвольное количество раз в запросе. Например:
Код
Выбрать Контрагенты.Ссылка КАК Ссылка,
Контрагенты.ФизЮрЛицо КАК ФизЮр
ПОМЕСТИТЬ КонтрНерез
ИЗ Справочники.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Нерезидент = Истина
;
Выбрать КонтрНерез.Ссылка КАК Ссылка
ПОМЕСТИТЬ НерезФиз
ИЗ КонтрНерез КАК КонтрНерез
ГДЕ
КонтрНерез.ФизЮр = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)
;
Выбрать КонтрНерез.Ссылка КАК Ссылка
ПОМЕСТИТЬ НерезЮр
ИЗ КонтрНерез КАК КонтрНерез
ГДЕ
КонтрНерез.ФизЮр = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)
;
///////
///// Дальнейшая работа
///////

А если сюда еще и добавить создание индексов, то будет еще и быстрее работать, причем в некоторых случаях в десятки раз. Например, у меня один запрос на 1500+ строк отрабатывал порядка 4 минут, а после добавления индексов время сократилось до 15 секунд.
Кроме того, результат выборки во временные таблицу можно использовать в разных запросах. Достаточно в свойствах запроса указать менеджер временных таблиц.
Код
МВТ = Новый МенеджерВременныхТаблиц();
Запрос1 = Новый Запрос("Выбрать Контрагенты.Ссылка КАК Ссылка,
|Контрагенты.ФизЮрЛицо КАК ФизЮр
|
|ПОМЕСТИТЬ КонтрНерез
|ИЗ Справочники.Контрагенты КАК Контрагенты
|
|ГДЕ
|Контрагенты.Нерезидент = Истина
|
|ИНДЕКСИРОВАТЬ ПО
|Ссылка,
|ФизЮр");

Запрос1.МенеджерВременныхТаблиц = МВТ;
Запрос1.Выполнить();

Запрос2 = Новый Запрос("Выбрать КонтрНерез.Ссылка КАК Ссылка
|ПОМЕСТИТЬ НерезФиз
|ИЗ КонтрНерез КАК КонтрНерез
|ГДЕ
|КонтрНерез.ФизЮр = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо)");

Запрос2.МенеджерВременныхТаблиц = МВТ;
Запрос2.Выполнить();

Запрос3 = Новый Запрос("Выбрать КонтрНерез.Ссылка КАК Ссылка
|ПОМЕСТИТЬ НерезЮр
|ИЗ КонтрНерез КАК КонтрНерез
|ГДЕ
|КонтрНерез.ФизЮр = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)");

Запрос3.МенеджерВременныхТаблиц = МВТ;
Запрос3.Выполнить();

ЗапросНерезФиз = Новый Запрос("Выбрать НерезФиз.Ссылка КАК Ссылка
|ИЗ НерезФиз КАК НерезФиз");

ЗапросНерезФиз.МенеджерВременныхТаблиц = МВТ;
РезультатФиз = ЗапросНерезФиз.Выполнить().Выбрать();

ЗапросНерезЮр = Новый Запрос("Выбрать НерезЮр.Ссылка КАК Ссылка
|ИЗ НерезЮр КАК НерезЮр");

ЗапросНерезЮр.МенеджерВременныхТаблиц = МВТ;
РезультатЮр = ЗапросНерезЮр.Выполнить().Выбрать();
AdminПодсистема хранения картинок во внешних файлах для УТ 10.3#6 01.09.21 22:49
(5) Статьи у меня есть в профиле, можете посмотреть. Там описаны базовые функции для положить/прочитать в/из SQL. Своим клиентам уже давно ставлю готовую более сложную, гибкую и универсальную подсистему, которая может хранить и читать файлы с разных баз разных серверов в зависимости от настроек. Учитывается так же, что SQL-сервер может быть временно недоступен, а так же пометка на удаление и непосредственное удаление. Регистр сведений дополнительный не использую, используется только стандартный справочник ХранилищеДополнительнойИнформации (он и дорабатывается).
AdminПодсистема хранения картинок во внешних файлах для УТ 10.3#4 18.08.21 11:39
(2) Там возни не так много, как кажется. Использую ADO для подключения к БД. Пробовал через внешние источники данных - не так удобно, но тоже реализуемо. А SQL и так крутится в памяти для 1С-ной базы. Можно файловую базу положить рядышком на соседний диск, чтобы не мешала основной.
AdminПодсистема хранения картинок во внешних файлах для УТ 10.3#3 18.08.21 11:36
(1) Писал подобное еще лет 10 назад, даже статьи есть мои по хранению в SQL.
ПубликацииИзменение размера картинок "на лету" с помощью NGINX#21 08.08.21 16:09
(19) Например, написать свой web-сервис или свой web-app. Хотя бы на том же .Net Core. Делается аж за 5 минут.
ПубликацииИзменение размера картинок "на лету" с помощью NGINX#18 10.06.21 19:49
(17) Авторизация на уровне учетных записей и ролей 1С, для интерфейса в стандартеASP.Net MVC идет Bootstrap, но можно использовать что угодно. Хоть самому контролы на Java писать или использовать кучу имеющихся в интернете, например на JQuery. Там разлет большой, от бесплатных самописных с GitHub до платных DevExpress и прочих. Отчеты строю в 1С, а дальше или возвращаю набор в Json и вывожу его средствами HTML, либо можно средствами 1С сформировать XLSX или PDF и отдать клиенту файлом. В основном формируется по запросу табличный документ, который средствами 1С преобразовывается в нужный формат. Но есть и более сложные механизмы, когда используется DOCX в качестве шаблона, открывается 1С-ом в ворде через СОМ, заполняется, преобразовывается Word-ом в PDF и файлом отдается клиенту.
ПубликацииИзменение размера картинок "на лету" с помощью NGINX#16 10.06.21 10:00
(15)
Цитата
"чтобы крутилось нативно в операционной системе"
подсказываю - REST-сервис (или в 1С это называется HTTP-сервис). А по поводу веба 1С-овского: я работаю уже достаточно долго с компаниями, которым нужен веб в силу их бизнеса. В далекие времена, когда 1С только выдала свой веб-клиент на 8.2 было сделано для пробы несколько решений на 1С-ном вебе. В силу того, что не было альтернатив, пользовались, хотя и не нравилось. 8.3 с егт Такси никак не улучшил ситуацию и клиенты просто перестали пользоваться вебовским функционалом. Он тяжелый для браузера и для разработчика. Зато решение с отдельным вебом на ASP.Net, которое общается с 1С с помощью http-сервисов, зашло на ура.