Иванов Павел

40
Рейтинг

blockcode
Павел Иванов



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

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

Друзья
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Сергей
  • ce ce
  • Андрей Волин
  • Alena Belousova
Подписчики 6

Рейтинг 40

Разработка с учетом Показателей

Инструменты и обработки Программист Платформа 1С v8.3 Россия Абонемент ($m) Конфигурация (md, cf) Математика и алгоритмы

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

1 стартмани

04.06.2021    5563    blockcode    1       

1

Форма выбора по произвольному запросу в управляемых формах

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

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

1 стартмани

16.02.2021    8331    7    blockcode    1       

7

Набор процедур для парсера консоли запросов

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Архив с данными Инструментарий разработчика

Данный набор функций и процедур необходимо вставить в Консоль запросов для управляемого приложения 1С 8.2 - 8.3 (Такси) http://infostart.ru/public/64522/, и вы получите возможность разбирать сложные запросы на вложенные, вносить необходимые правки и собирать измененные подзапросы в запрос. Данный модуль не содержит консоли!!! Ее придется отдельно скачать по ссылке http://infostart.ru/public/64522/

1 стартмани

09.11.2016    13252    4    blockcode    5       

7

Внешняя программа для просмотра задач "Задачи мне" Документооборота 1С: 8.3

Инструменты и обработки Программист Платформа 1С v8.3 1С:Документооборот Россия Абонемент ($m) Архив с данными Управление проектом (PMO, EPM)

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

1 стартмани

13.10.2016    11797    10    blockcode    5       

6

Программа для просмотра задач «Задачи мне» Документооборота 1С

Инструменты и обработки Программист Платформа 1С v8.3 1С:Документооборот ИТ-компания Россия Windows Абонемент ($m) Приложение (exe) Управление проектом (PMO, EPM)

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

1 стартмани

25.08.2015    15332    8    blockcode    1       

4

Как сделать простой парсер сложных запросов

Статья Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Windows Абонемент ($m) Архив с данными Запросы

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

1 стартмани

11.07.2013    9260    14    blockcode    8       

14

Универсальное окно выбора из списка

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

Данная обработка предназначена для организации диалога выбора объекта из набора данных по произвольному запросу.

1 стартмани

06.03.2013    8860    22    blockcode    1       

1

Комментарии

DevОбъединить 2 колонки, нужен ли макет?#4 13.07.22 14:25
(1) В Выбранных полях используй Сгруппировать поля

Прикрепленные файлы:

2022-07-13_14-20-03.png
DevИерархия по сериям для производства#11 13.07.22 11:18
(1) Можно сделать регистр сведений с 3 ключами (точнее парами ключей Номенклатура+Серия).
1. Серия Номенклатуры загрузки на этапе.
2. Серия Номенклатуры выпуска на этапе.
3. Серия Номенклатуры конечной продукции.
Сделав отбор по конечной продукции, легко получить историю производства. Необходимо только создать серию конечной продукции на первом этапе и не забыть, что она создана на последнем.
DevДобавление табличных полей на управляемую форму перед ее открытием#9 08.05.22 18:25
В https://infostart.ru/public/1385148/ я программно создаю ТаблицуЗначений и добавляю в нее столбцы. Для этого необходимо изменить состав реквизитов формы. Публикую фрагмент из кода обработки:

Код
        МассивДобавляемыхРеквизитов = Новый Массив; 
   Реквизит = Новый РеквизитФормы("ТаблицаЗначений", Новый ОписаниеТипов("ТаблицаЗначений"));
   МассивДобавляемыхРеквизитов.Добавить(Реквизит);
   
   Для каждого Поле из Колонки Цикл
      Столбец = Новый РеквизитФормы(Поле.Имя, Новый ОписаниеТипов(Поле.ТипЗначения),"ТаблицаЗначений" ,Поле.Имя);
      МассивДобавляемыхРеквизитов.Добавить(Столбец); 
   КонецЦикла;
   
   ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
DevКонвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере#12 22.12.21 15:12
Подобную задачу я решал с использованием консольной утилиты pdftk http://softhelp.org.ua/?p=7118
Если вам необходимо исполнить не одну а несколько команд рекомендую создать временный temp.bat, записать в него все команды, выполнить его, и удалить после этого.
DevИ снова о глубине вложений (почти иерархия)#18 21.12.21 17:25
Если каждую связь иерархии регистрировать в регистре сведений:

Код
Набор = РегистрыСведений.МояИерархия.СоздатьНаборЗаписей();
НовЗапись = Набор.Добавить();
НовЗапись.Отец = КакоетоЗначение1;
НовЗапись.Сын = КакоетоЗначение2;
НовЗапись.МойРесурс = КакоетоЧисло;
Набор.Записать();

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

ЗЫ: Регистр сведений можно использовать только для построения модели. С ним нагляднее. А потом запросы переделать на отношения из других структур
DevИз ПолеHTML в Эксель. Делал кто?#2 21.12.21 14:41
Есть пример Загрузка данных из ТабличногоДокумента. Там выгрузка в Эксель одной командой:

ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);

возможно что-то подобное есть и с ПолемHTML

Прикрепленные файлы:

ZagruzkaDannyihIzTablichnogoDokumenta_UF_v2.zip
DevДобавить в форму выбора колонку динамически, не создавая новую форму.#5 19.06.21 12:14
(1) В таких случаях я использую Форму выбора по запросу https://infostart.ru/public/1385148/
DevНужна подсказка по оптимальной структуре запроса#7 16.06.21 10:40
(1) если нужны поступления, то смотреть нужно не остатки, а движения регистра ТоварыНаСкладах

Код
   лТекст = "
      |ВЫБРАТЬ ПЕРВЫЕ 1
      |   ТоварыНаСкладах.Период КАК Период,
      |   ТоварыНаСкладах.Регистратор КАК Регистратор
      |ИЗ
      |   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
      |ГДЕ
      |   ТоварыНаСкладах.ВидДвижения = &ВидДвижения
      |   И ТоварыНаСкладах.Количество = &Количество
      |
      |УПОРЯДОЧИТЬ ПО
      |   Период УБЫВ
      |";

   лЗапрос = Новый Запрос(лТекст);

   // Присвоение значений переменным параметров.

   ВидДвижения = Приход;
   Количество = 1000;

   // Установка параметров.
   лЗапрос.УстановитьПараметр("ВидДвижения", ВидДвижения);
   лЗапрос.УстановитьПараметр("Количество", Количество);


   лВыборка = лЗапрос.Выполнить().Выбрать();
DevКак с помощью документа изменить значение в реквизите справочника?#9 16.06.21 10:14
(1)
Цитата
CтатусКлиента = Спр.ПолучитьОбъект();
СтатусКлиента.СтатусКлиента = "Постоянный";
Спр.Записать();

Если получили объект, то объект нужно и записывать CтатусКлиента.Записать();
но перед этим проверьте Ссылку, возможно она пустая
DevЗначение "999" поля "Номер" не уникально#11 15.06.21 17:44
(6)
1) Добавь количество знаков.
2) Присвой номер больший чем "999 ", например "99900001"
3) Выполни в обработке функцию ОбновитьНумерациюОбъектов();

тогда следующий номер будет "99900002"