Небольшой, но "Супер" полезный "приёмчик" для разработчиков 1с. Те, кто используют у себя в программе (1с77) некое "подобие" шедулера, меня поймут.
Скачать файл
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Смысл в том, чтобы можно было используя одну обработку, вызывать в ней на выполнение любую процедуру или функцию (поддерживается передача сколь угодно много параметров).
Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.
Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))
На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема.
Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы.
Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме.
Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.
Встала недавно задача для одной организации, которая все еще на 1С 7.7 немного автоматизировать работу отдела продаж. А именно уйти от ручного заполнения договоров, сделанных юристами в MS Word. Договора от разных фирм и разного назначения отличались. Переводить их в таблицы 1С очень не хотелось и нашел способ прямо в файлах Word сделать небольшие дополнения, чтобы можно было печатать, используя именно эти заготовки юристов.
Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........
Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS.
Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой.
Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ.
Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.
Боян? Может быть. На инфостарте не видел ничего подобного. Смысл выполнять проц. не вижу! Функция - универсальнее. Нафига это? может подать идею, может для неопытных спец. Решать не мне, см рис. как я это применяю!
А я бы сделал немного по другому. На форму бросается, допустим, реквизит типа число. И текст с формулой вида "УстДоступность()". В модуле формы описыается функция УстДоступность(), которая в зависимости от значения числового реквизита выполняет какое-то действие (при значении 0 - ничего не делается). При после открытия формы обработки методом ОткрытьФорму("Обработка.НашаОбработка",КонтФормы); Через контекст (КонтФормы.НашЧисловойРеквизит = НужноеЧисло) устанавливается значение числового реквизита. А затем выполняется метод "КонтФормы.Форма.Обновить(0)". При обновлении формы срабатывает Функция "УстДоступность()" и отрабатывает нужный сценарий.
Я таким образом вызывал процедуры модуля формы документа, которые нужны при заполнении табличной части. Правда больше 1 строки таким способом не заполнишь.
Один БАЛЛ!
Я наблюдаю в словах автора признаки гениального безумства!
(в положительном смысле)
:))))))))))))
Предлагаю альтернативу,
предоставляемую ВК FormEx:
ВК поставляет объект "Сервис",
имеющий помимо много прочего пару полезных методов к теме:
ВыполнитьПроцедуру / CallAsProcedure
Синтаксис: ВыполнитьПроцедуру(Контекст, ИмяПроцедуры, СписокАргументов)
Параметры:
Контекст - тип: ГрупповойКонтекст. Контекст, в котором необходимо выполнить процедуру. Необязательный. По умолчанию - текущий контекст.
ИмяПроцедуры - тип: Строка. Имя процедуры.
СписокАргументов - тип: СписокЗначений. Список значений, содержащий аргументы процедуры. Если размер списка меньше, чем количество аргументов процедуры, то в оставшиеся аргументы передаются пустые значения. Лишние значения игнорируются. Значения по умолчанию игнорируются. Необязательный. По умолчанию - пустой список.
Возвращает: результат выполнения метода в виде числа: 1 в случае успеха, 0 в противном случае.
Описание: Метод предназначен для выполнения процедуры в заданном контексте.
Пример:
Перем Конт;
Сервис = СоздатьОбъект("Сервис");
Если ОткрытьФорму("Обработка.Демо", Конт) = 1 Тогда
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение("Первый параметр");
Список.ДобавитьЗначение("Второй параметр");
Список.ДобавитьЗначение("Третий параметр");
Сервис.ВыполнитьПроцедуру(Конт, "Выполнить", Список);
КонецЕсли;
Показать
и
ВыполнитьФункцию / CallAsFunction
Синтаксис: ВыполнитьФункцию(Контекст, ИмяФункции, СписокАргументов, Результат)
Параметры:
Контекст - тип: ГрупповойКонтекст. Контекст, в котором необходимо выполнить функцию. Необязательный. По умолчанию - текущий контекст.
ИмяФункции - тип: Строка. Имя функции.
СписокАргументов - тип: СписокЗначений. Список значений, содержащий аргументы функции. Если размер списка меньше, чем количество аргументов функции, то в оставшиеся аргументы передаются пустые значения. Лишние значения игнорируются. Значения по умолчанию игнорируются. Необязательный. По умолчанию - пустой список.
Результат - тип: Любой. Переменная, в которую записывается результат выполнения функции.
Возвращает: результат выполнения метода в виде числа: 1 в случае успеха, 0 в противном случае.
Описание: Метод предназначен для выполнения функции в заданном контексте.
Пример:
Перем Конт, Рез;
Сервис = СоздатьОбъект("Сервис");
Если ОткрытьФорму("Обработка.Демо", Конт) = 1 Тогда
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение("Первый параметр");
Список.ДобавитьЗначение("Второй параметр");
Список.ДобавитьЗначение("Третий параметр");
Сервис.ВыполнитьФункцию(Конт, "Выполнить", Список, Рез);
КонецЕсли;
Сообщить("Результат выполнения функции: " + Рез);
Про Шаблон - это боян чистой воды, и еще - процедуру в нём не выполнишь, так что, поправь описалово.
Поддерживаю, но не во всем:
Неплохо бы для порядка описать зверюг, окружающих ШАБЛОН(tFunction):
LocalConnect();
....
LocalDisconnect();
;))))))))))))))))
(9) dicwork,
это больше для извращенцев ...
... таких как я ;)))))
Ну позарез нужно бывает иногда
в обобщенных алгоритмах
разные методы в контексте вызвать
(в зависимости от погоды в конторе) !!!
ЗЫ
Скромность - не порок, но средство для сокрытия оных.