Редактор и исполнитель программного кода в режиме Предприятие (1С 7.7)

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

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

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

 

Иногда бывает лень ради трех-пяти строчек кода создавать обработку. Да и хранить такой программный мусор тяжело (у меня отдельная папка, но как показывает практика, когда таких штук  с полсотни, то быстрее написать новую обработку, чем отыскивать, то, что может подойти). А вообще еще позавчера я и не думал, что 7-ка такое умеет. Вот думал 8-ка молодец, она может, а на семерке, таже если строчку кода хочешь куда-то встроить или изменить программно  - фиг тебе!

Но не все так оказалось плохо как казалось. Столкнувшись с необходимостью динамически менять именно код а не переменные походил по Инфостарту (и не только) изрядно, но все редакторы и технологии редактирования кода  сделаны для восьмерки. Например //infostart.ru/public/62374/ и еще какие-то. Но для семерки не нашел НИЧЕГО.

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

Суть проста. В форме видим поле - в поле пишем код. Нажимаем "Исполнить" видим либо ругательства в окне сообщений, либо результат работы. Исполняем хоть одну команду хоть сто одну.

 Пдробности:

 1. Код исполняется либо непосредственно как одна процедура без названия (процедура в этом случае создается  по умолчанию) либо делим его на процедуры / функции как обычно. В последнем случае не забываем ставить соответствующую галочку на форме и помним, что первой запустится последняя по счету процедура.

 2. Если хотим большего подключаем текстовую библиотеку. Это обычный текстовый файл с кодом процедур / функций.

 Используем его так как будто мы все это уже написали сверху нашего поля с кодом.

 3.  Так как не 8-ка все таки, то я не смог уйти от связки двух файлов для работы данного редактора.
Как говорится один бьет, а другой - держит. Поэтому избрал более простой и логичной пару двух ert, а не ert с текстовым.

Файл TextCode.ert и есть собственно редактор. Открываем его как внешний отчет в режиме Предприятие пишем код и запускаем.

Файл RunCode.ert должен просто находиться рядом с TextCode.ert (в одной папке).
Так как все это рассчитано на программистов, думаю Вы легко, в случае необходимости, разберетесь как эту пару встроить в конфигурацию.
Сейчас путь к RunCode.ert берется именно в каталоге внешней обработки TextCode. Если она перестанет быть внешней,
то и путь к RunCode.ert нужно указать по другому.

Текстовый файл в комплекте поставки просто библиотека на которой я тестировал как загружаются и работают библиотеки.

Там две функции не подавляющие своей сложностью. 

 P.S. Для людей которым просто захочется поиграться в программистов БОЛЬШОЙ совет и предупреждение "Если Вы своим кодом, а точнее бездумным его написанием и исполнением, запортите свою базу я никакой ответственности за последствия ВАШИХ действий НЕ НЕСУ!!!" Исполняется только то что пишется, а написать теперь выходит может кто угодно...

 Версия 2. 

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

http://forum.infostart.ru/user/46936/ и Warenic http://forum.infostart.ru/user/36483/.

 Вторая версия состоит всего из одного файла ert (победил таки неспособность семерки работать с двоичными файлами) и отличается от предыдущей наличием таблицы подстановок куда можно вводить как базовые типы данных, так и объекты метаданных (справочники, документы, перечисления и константы) и назначать для них переменные. Таблица подстановок редактируется как кнопками Добавить/Удалить так и непосредственно двойным кликом по ячейке.

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

Особое замечание. Если при определении значения переменной а необходимо знать значение переменной b то в таблице определение b должно находиться раньше.
То есть если а = b+c, b=с-3, с=8 то в таблице значений мы сначала определяем с, затем b и в последнюю очередь a, так как построитель кода набивает их в порядке следования в таблице подстановк. Вроде бы очевидно, но я сам с этим однажды тупанул:)

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

 

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

Наименование Файл Версия Размер
ВесьКомплект

.rar 9,97Kb
135
.rar 9,97Kb 135 Скачать

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

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

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

1. Boroda 90 19.11.11 14:25 Сейчас в теме
Очень неплохо! Беру на вооружение. Спасибо! Чувствую, 7-ка ещё долго будет жить....
2. vkr 101 19.11.11 21:20 Сейчас в теме
Круть!!! Интерпретёр внутри интерпретёра... Вот так и вбиваются гвозди в крышку гроба монстров... :D
А если серьезно - то ОЧЕНЬ полезная штука для программера!!! ПЛЮС!!!
3. zk96 20.11.11 01:08 Сейчас в теме
Не стал скачивать. Но думаю что Вы действительно сделали большую и сложную работу, поэтому плюс. Но мне кажеться, что если бы Вы использовали 1С++ и его объект ВыполняемыйМодуль, то добились того же результата с небольшими затратами времени и сил.
29. victuan 3917 30.11.11 08:01 Сейчас в теме
А всё-таки почему автором пост (3) оставлен без внимания?
30. Арчибальд 2712 30.11.11 08:23 Сейчас в теме
(29) Могу я ответить. 1С++ годится в "домашних" условиях, когда он уже загружен. Данную же обработку можно носить в кармане - скажем, с целью потестить совершенно чужую базу.
31. victuan 3917 30.11.11 08:26 Сейчас в теме
(30)А 1срр.dll в карман уже не лезет? ;)
33. Арчибальд 2712 30.11.11 09:11 Сейчас в теме
(31) Регить свою dll-ку на чужом компе неприлично.
32. dusha0020 944 30.11.11 09:05 Сейчас в теме
(29) victuan, Идея была навеяна именно штатными возможностями 8-ки и аналогичными консолями под нее. И с самого начала, я решил использовать только базовые возможности семерки. В итоге их не хватило (пришлось прибегнуть к vbs и стандартному объекту WSH), но это штатный функционал любой (с 2000 кажется) винды. В итоге мы имеем 1 ert, а не ert+ 1cpp.dll. Не скажу что мой подход лучший с точки зрения затрат времении программиста, но думаю, что те кто скачал и разобрал код, смогут найти интересные идеи и чуть-чуть расширить представление о возможностях семерки.
34. victuan 3917 30.11.11 12:34 Сейчас в теме
(32)Т.е. ert + WSH это лучше, чем ert + 1cpp.dll? Может быть, может быть...
(33)1c++ регить в реестре нет необходимости, она подключается из встроенного языка 1С (ЗагрузитьВнешнююКомпоненту) без всяких дополнительных действий в системе.
4. TrinitronOTV 7 20.11.11 09:24 Сейчас в теме
присоединюсь к вышесказанному, тоже плюс поставлю
5. Serj1C 480 20.11.11 21:13 Сейчас в теме
Скачивать не стал, все-равно семерки уже нет установленной. Сам задумался как такое сделать, пришло в голову только сохранять исполняемый код в текстовый файл, а в обработке использовать конструкцию "загрузить текст модуля", и хитро ее вызывать. Поставлю плюс, но мой вывод:

Столетием ошибся ))
7. dusha0020 944 20.11.11 21:40 Сейчас в теме
(5) Serj1C, Да. Принцип именно такой:), А насчет столетия... В восьмерке нет достаточной практики - только книжка и задания по ней. А мои публикации это побочные продукты ежедневного и упорного писания под 7-ку. Ну так мне и платят за нее...
6. ksv74 88 20.11.11 21:35 Сейчас в теме
Плюсану. Все просто,идея лежит на поверхности, но сам не додумался.
8. DDos76 200 21.11.11 07:38 Сейчас в теме
Идея хорошая. Сам собирался много раз но лень победить не смог. А еще никак не мог придумать, каким же образом "Покрасить" текст модуля в окне редактирования. А именно окраски очень не хватает. Что сделать - привычка. Но все равно спасибо и мой +!
9. Арчибальд 2712 21.11.11 08:17 Сейчас в теме
Мне лень посмотреть. Это примерно как в http://infostart.ru/public/59433/ ?
Прикрепленные файлы:
11. dusha0020 944 21.11.11 10:52 Сейчас в теме
(9) Арчибальд, Да это примерно так. И не тешил себя мыслью, что идея моя на 100% оригинальна, но вот отыскать Вашу разработку не смог...
10. Famza 83 21.11.11 09:00 Сейчас в теме
Плюс, конечно, но надо бы добавить реквизит какой на форму неопределенного типа, а то как подставить че-нить из данных?
12. warenic 108 21.11.11 11:48 Сейчас в теме
В качестве идеи для развития проекта: неплохо бы иметь возможность вводить какие-либо данные. Их можно использовать как критерии отбора при групповой обработке или значения для реквизитов. Как, например, в редакторе таблиц, списков значений или универсальных редакторах моей разработки (там использована компонента Rainbow addon 2000, переродившаяся в 1С++).
13. Арчибальд 2712 21.11.11 14:23 Сейчас в теме
(12) См. пост 9. Там как раз подстановка есть... А вычисление формул в контексте (Документа) - вот здесь http://infostart.ru/public/58541/
16. warenic 108 21.11.11 16:54 Сейчас в теме
(13) Арчибальд,
Ты меня не понял.
Допустим, нам нужно из справочника "Номенклатура" обработать все элементы, у которых есть определенное свойство. Ссылку на элемент свойства как в тексте указать?
Спр=СоздатьОбъект("Справочник.ВидыСвойств");
Спр.НайтиПоКоду(123);
ВидСвойства=Спр.ТекущийЭлемент();
Спр=СоздатьОбъект("Справочник.ЗначенияСвойств");
Спр.НайтиПоНаименованию("трам-пам-пам");
ЗначениеСвойство=Спр.ТекущийЭлемент();
Спр=СоздатьОбъект("Справочник.СвойстваНоменклатуры");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 цикл
	Если 9Спр.ВидСвойство=ВидСвойства) и (Спр.ЗначениеСвойства=ЗначениеСвойства) тогда
		НужноеСвойство=Спр.ТекущийЭлемент();
		Прервать;
	КонецЕсли;
КонецЦикла;
Показать

Можно еще вот так, если заранее узнать внутренний код.
НужноеСвойство=ЗначениеИзСтрокиВнутр("{""B"",""0"",""0"",""562"",""0"",""0"",""         5   ""}");

Но лучше иметь на форме реквизит (или лучше список значений), в котором это значение просто выбрать. А потом передать в открываемую форму через параметр. Тогда в тексте на него ссылаться просто
НужноеСвойство=Форма.Параметр.Получить("НужноеСвойство");
18. Арчибальд 2712 21.11.11 17:16 Сейчас в теме
14. CheBurator 3439 21.11.11 16:43 Сейчас в теме
Сделай возможность "тестового исполнения кода" - оберни код в транзакцию.. по окончанию кода - отментьТранзакцию()
15. CheBurator 3439 21.11.11 16:43 Сейчас в теме
Сделай возможность "тестового исполнения кода" - оберни код в транзакцию.. по окончанию кода - отментьТранзакцию()
17. dusha0020 944 21.11.11 17:08 Сейчас в теме
Спасибо всем за замечания и предложения. Попробую все учесть, а также обойтись всего одним ert-шником. Это было написано за 3 часа и ночью, после бурной трудовой недели, я сам удивился, что так быстро заработало:) Сегодня посижу после работы - чего нибудь допишу.
19. Арчибальд 2712 21.11.11 17:18 Сейчас в теме
(17) Одним - не так-то просто. Если только формекс применить...
22. warenic 108 22.11.11 11:09 Сейчас в теме
(19)
Одним - не так-то просто. Если только формекс применить...

Как вариант: можно модуль основной обработки вынести в текст. К кнопке "Выполнить" цепляем процедуру, текст которой собственно и будем писать в диалоге. Сохраняем текст модуля (с написанной процедурой), а потом открываем обработку, чтобы модуль заново скомпилировался. Теперь с новой процедурой на кнопке.
Минус - если модуль не скомпилится из-за ошибки, то форма обработки не откроется, совсем...
(17) dusha0020. не загоняйся, 2 ert-шки и набор текстовиков - самое то :)
Арчибальд; +1 Ответить
20. ГСГ 22.11.11 09:50 Сейчас в теме
Скачаю и посмотрю, идея очень понравилась, такое действительно бывает нужно и полезно.
21. ГСГ 22.11.11 09:55 Сейчас в теме
Скачал, совсем даже недурно. Действительно семерка еще долго будет на службе у пользователей, еще много интересного увидим.
23. Lyuba-Lyuba 23.11.11 10:22 Сейчас в теме
24. nurislam 23.11.11 13:29 Сейчас в теме
25. Maximus1982 23.11.11 18:04 Сейчас в теме
26. Altair777 640 24.11.11 12:19 Сейчас в теме
(0) Позабавили названия скриншотов "Scrin1.jpg" и т.д.
Автор, Вам должно быть стыдно :)
27. Арчибальд 2712 25.11.11 10:35 Сейчас в теме
Вариант с всего одной ert-шкой (исполнитель кода генерируется скриптом) - вообще шедеврален. Жаль что дополнительный плюс не предусмотрен.
28. dusha0020 944 25.11.11 21:12 Сейчас в теме
(27) Арчибальд, Такие рецензии нужно в рамочку и на стену вместе с дипломами и серификатами вешать. Но рамка - золотая и на пол метра выше:)!
36. dumal 30.11.11 17:14 Сейчас в теме
Спасибо. Честно говоря, читая, как называется данная разработка, был уверен, что увижу что-то вроде совета создавать текстовый файл, подключать его с помощью #ЗагрузитьИзФайла и потом менять его в процессе работы. Возьму на вооружение
37. Арчибальд 2712 30.11.11 17:34 Сейчас в теме
(36) В 9 посте я задал вопрос, так ли это - так и было. А потом автор ушел вперед...
38. dumal 30.11.11 18:15 Сейчас в теме
Арчибальд пишет:

(36) В 9 посте я задал вопрос, так ли это - так и было. А потом автор ушел вперед...


Что ж, честь ему и хвала. А нам - отличный инструмент для работы
Арчибальд; +1 Ответить
39. lcd-boost 04.12.11 05:29 Сейчас в теме
Крутая вещь. Добавил пару функций :) и она мне очень помогает экономить время на кодинге :))))
40. Гость 13.12.11 15:43
41. dicwork 30.12.11 00:08 Сейчас в теме
Интересная вещь. Только почему прискачивании скачивается файл с расширением HTM, который является файлом RAR. Могу конечно переименовать, но все же нехорошо это.
42. alexqc 147 17.02.12 13:58 Сейчас в теме
Обработку посмотреть не могу (счас занимаюсь 8кой), по контексту обсуждения понял, что вы наверно создаете временный файл-ERTшник через что-то типа ADODB.Stream с #ЗагрузитьИзФайла и файл который это самое #Загрузить и загружает. Скажите, я угадал?

А к самой обработке по опыту написания-использования аналогичного могу предложить такую "сервисную" фичу:

В текстовом поле неограниченной длины код писать все же не совсем удобно (таб не нажмешь, форматирования-раскраски никакой...), удобно скопировать в текстовый документ (который через файл-новый-текст открывается), ему в свойсвах текста указать что это "текст модуля" (как вариант, установить "открывать текст как модуль" в сервис-параметры), там отредактировать как удобно, и скопировать обратно.
А вот для автоматизации этого процесса сделать такой хитрый ход: создать объект Текст, открыть его, а после редактирования прочитать его содержимое обратно - это все можно сделать программно, по нажатию соотв кнопок на форме. А используя недокументированную функцию формы Форма.ОбработкаОжидания - даже оперативно получать данные оттуда.

Вот примерный код (не проверял, может сразу не заработать)
Перем ТекстМод;
Процедура ВТекст()
	ТекстМод=СоздатьОбъект("текст");
	ТекстМод.ДобавитьСтроку(ПолеФормы);
	ТекстМод.Показать();
	Форма.ОбработкаОжидания("обработкаТекста",1);
КонецПроцедуры

//-------------------------------
Процедура обработкаТекста()
    Если ТипЗначения(ТекстМод)=100 Тогда
        Если ТекстМод.КоличествоСтрок()>0 Тогда
        	Стр="";
			Для ш=1 по ТекстМод.КоличествоСтрок() Цикл
				Стр=Стр+ТекстМод.ПолучитьСтроку(ш)+РазделительСтрок;
			КонецЦикла;
			Если ПолеФормы<>Стр Тогда
				ПолеФормы=Стр;
				Форма.обновить();
			КонецЕсли;
			Возврат;
		ИначеЕсли ПолеФормы="" Тогда
			Возврат;
		КонецЕсли;
	КонецЕсли;
	Форма.ОбработкаОжидания("обработкаТекста",0);
КонецПроцедуры

Показать

где ПолеФормы - поле для редактирования, ВТекст() - проц. на кнопке. Процедура создает и открывает текстовый док с ред. содержимым, и запускает обработку ожидания ОбработкаТекста. В ОбработкеТекста по мере изменения содержимое текст. дока копируется обратно в поле редактирования, а также проверяется факт существования объекта и то что он открыт (если текст док закрыть, у него очистится содержимое) - при закрытии текст.дока обработка отключается.
43. dusha0020 944 17.02.12 14:15 Сейчас в теме
(42) alexqc, Да. Вы догадались правильно. Хекс содержимое временного ert-шника записано в код основной обработки и восстанавливается скриптом, таким образом нужен всего один файл с обработкой.
А Ваша фитча очень интересная. Обязательно попробую прикрутить к данной обработке, тем более, что писать в бесконечном текстовом поле действительно неудобно, да и не эффектно:) Спасибо большое.
Оставьте свое сообщение

См. также

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    29243    4    Serginio    1    

Как получить номер и дату договора из наименования справочника договоров?

Обработка справочников Практика программирования v7.7 1cv7.md Абонемент ($m)

В типовых конфигурациях платформы "1С:Предприятие 7.7" часто номер и дата договора указаны в самом наименовании договора. Что создает сложности в тех случаях, когда эти реквизиты надо знать, например, при конвертации данных в конфигурации платформы "1С:Предприятие 8", где номер и дата договора - отдельные реквизиты.

1 стартмани

24.09.2015    22041    2    SiAl    7    

1С: 7.7. Функции-обертки, функторы, отложенный вызов, карринг параметров на примере функции чтения табличных данных

Практика программирования v7.7 1cv7.md Абонемент ($m)

Человек, работающий в 1С, в силу своей практики и опыта может нуждаться в средствах программирования, в 1С не представленных. В публикации описаны средства отложенного вызова функций, каринга параметров, композиции и др., в основе которых лежит вызов функции посредством функции Шаблон. Несмотря на простоту, созданный за несколько лет работы в 1С 7.7 набор функций обрел мощь, достаточную для лаконичной реализации указанных целей.

1 стартмани

17.09.2015    10352    3    rozhkovdmitriy    21    

Процесс бар (индикатор состояния выполнения цикла) Промо

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Полезная "красотулька" в вашем документе. Будет очень полезна для медленных компьютеров, где не всегда понятно, работает-ли обработка или 1с-ка тупо "зависла"

14.04.2008    25534    870    ded00786    38    

Все про картинки в 1С 7.7, ну или почти все...

Практика программирования v7.7 1cv7.md Абонемент ($m)

В 1С 8 наличие картинок товаров предусмотрено изначально, а в 7.7 такого нет. Проблема существует и ее исправляют, но это, как правило, частные случаи, касающиеся, например, печати прайса http://infostart.ru/public/289876/ , показу картинок в справочнике номенклатура http://infostart.ru/public/17125/, файловый менеджер картинок товара http://infostart.ru/public/15239/ или просто конфигурации работы с картинками http://infostart.ru/public/21142/ (не стремился дать полный обзор, поэтому не попавшие не обижайтесь :). Что не устроило – информация разбросана по статьям, необходимость дополнительно напрягаться, чтобы это заработало. Здесь я попытался собрать все «до кучи», а так же дать необходимые ссылки для желающих «копнуть вглубь».

1 стартмани

18.11.2014    35622    75    kitminsk    11    

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Универсальные обработки Практика программирования v7.7 1cv7.md Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    29090    50    venger    7    

А ты умеешь СТУЧАТЬ? (или Азбука Морзе на 1С) Промо

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Азбука Морзе теперь и на языке 1С . А ты знаешь, как звучит сигнал "SOS" ? А ты сможешь в трудную минуту его просигналить ?

1 стартмани

22.03.2010    31856    197    Tatitutu    39    

FTP отправка из 7.7

Практика программирования v7.7 1cv7.md Абонемент ($m)

Всё чаще встречаются задачи по отправке отчетов поставщику, и нередко подготовленные файлы необходимо записать на FTP сервер. О том, как можно решить подобную задачу, и пойдёт речь.

3 стартмани

07.12.2012    42050    113    Yury1001    25    

Библиотека кода 1С 7.7 (накопленная за 8 лет)

Практика программирования v7.7 1cv7.md Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    27858    245    adhocprog    51    

Групмейкер для таблицы значений.

Инструментарий разработчика Практика программирования Универсальные обработки v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Абонемент ($m)

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

1 стартмани

20.11.2012    24801    58    dusha0020    15    

Класс "ЗаписьXML" для 1С++, аналог одноименного класса из 8.x.

Обмен через XML Практика программирования v7.7 openconf 1cv7.md Абонемент ($m)

Мне понадобилось перенести работающий код выгрузки данных в xml из 1С 8.2 в 7.7. Чтобы минимизировать исправления - написал класс-эмулятор класса ЗаписьXML из 8.2. Теперь при переносе кода из 1С8.2 в 7.7 количество необходимых изменений - минимально.

1 стартмани

26.10.2012    17113    13    curdate    8    

Подготовка сведений для ПФР - исправление некорректного формирования отрицательных сумм взносов с сумм превышения максимального предела. Конфигурация: ЗИК 7.70.328

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Абонемент ($m)

Подготовка сведений для ПФР - исправление в формирование сведений персонифицированного учета, при превышении максимального предела

1 стартмани

22.10.2012    20009    49    u_n_k_n_o_w_n    9    

Баги 1С 7.7 - добро или зло: непосредственный ввод "а ля 1С 8.х" без использования ВК

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Баг 1С 7.7 открывает нам возможность реализовать без использования ВК непостредственный ввод таких значений, как справочники, перечисления, документы по введенному тексту в поле ввода (а ля 1С 8.х)

1 стартмани

25.06.2012    24239    34    MarSeN    21    

Группы "быстрых" индикаторов на формах 1с7.

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Индикация влож. циклов, параллел. процессов; динам.гистограммы. Индикаторы: реагируют на отрицат.шаги - не только Прогресс-Индикаторы. "Быстрые": вывод на экран не на каждом, а на заранее расчитанном шаге. Управление: инверсия белого-черного, переворот линейки. Можно записывать истории Процессов. Возможны вертикальный и компактный вывод.

1 стартмани

13.06.2012    11663    23    newold2    6    

"Справочник плюс". Прямая запись в справочники 1С 7.7

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

"Справочник плюс" - замена штатного объекта "Справочник.ХХХ" Предназначен для "прямой" записи, и дает возможность управлять табличными подсказками при чтении. Позволяет избавиться от монопольных блокировок таблиц справочников и таблицы констант. Главным мотивом написания было избавиться от вылетов 1С из-за deadlock-ов и "недопустимых состояний курсоров". Состоит из нескольких классов 1с++, нескольких переменных и методов в глобальном модуле.

1 стартмани

24.05.2012    15272    23    an_2    16    

Работа с бинарными файлами в 1С 7.7

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Описание принципов и набор инструментов для работы с двоичными данными в 1С 7.7. Примеры во вложениях.

1 стартмани

16.05.2012    26127    93    dusha0020    8    

Просмотр имен sql реквизитов метаданных 1с 7.7

Практика программирования v7.7 openconf 1cv7.md Россия Абонемент ($m)

Обработка показывает sql имена таблиц и столбцов, а также индексов (для оптимальных запросов) построенных по метаданным 1с 7.7. Удобно при написании прямых sql запросов, или запросов из др. баз данных.

1 стартмани

27.03.2012    14344    43    born85    13    

Вывод и перенумерация отчета с заранее неизвестным количеством группировок.

Практика программирования Работа с интерфейсом openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C v.7.7 Пример вывода отчета с заранее неизвестным количеством группировок, с возможностью изменять уровень вложенности группировок из списка значений на форме, с нумерацией конечного отчета, с выводом структуры вложенности группировок (с помощью внешней компоненты Йоксель - http://yoksel.net.ru/Hotfixes). В приложенном файле показан пример вывода отчета из сформированной таблицы значений. Код я старался закомментировать как можно подробней. Хоть семерка и вымирающая платформа, думаю еще есть люди, которые только начинают ей заниматься, и им это может пригодиться.

1 стартмани

21.03.2012    28284    21    unichkin    11    

Исправление ошибки в печати справок 2-НДФЛ в 1С Бухгалтерии 7.7 535 релиз и УСН 189

Справки Практика программирования Зарплата Зарплата v77::БУ 1С7:Бух Россия БУ НДФЛ Абонемент ($m)

При подборе в печати справок возникает ошибка "Если Элемент.ОсновнойЭлемент <> Элемент Тогда {Отчет.СправкиПоНДФЛ.Форма.Модуль(4782)}: Поле агрегатного объекта не обнаружено (ОсновнойЭлемент)"

1 стартмани

30.01.2012    19693    72    Intelligent    21    

Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7 (портирование под Win7)

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

В связи с изменением состава DLL в Wiindows 7 оригинальный плагин выложенный здесь http://infostart.ru/public/15364/ перестал работать в Windows7/WindowsServer 2008 R2. (Что именно там изменилось можно посмотреть здесь http://ru.wikipedia.org/wiki/MinWin) Данный плагин - это простое портирование оригинального плагина под Windows 7

1 стартмани

31.10.2011    56384    596    avgreen    94    

Структура конфигурации 1С v7.Х в удобочитаемом виде.

Практика программирования v7.7 openconf 1cv7.md Россия Абонемент ($m)

Отчет предоставляет информацию о структуре конфигурации 1С v7.Х в удобочитаемом виде. Имеется возможность получения общей информации об объектах базы данных.

1 стартмани

24.10.2011    13619    55    БоНН    12    

Функция Случайное число, RANDOM, RND для 1С 7.7

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

В 1С нет функции случайного числа. представляю Вам свою. основана на получении идентификатора и из него случайного числа. от 0 до 10, от 0 до 100 и от 0 до 1000.

1 стартмани

28.09.2011    23728    18    dnikolaev    19    

"Взаимозачёт" и как "Я" его понимаю ...

Практика программирования Дебиторская и кредиторская задолженность Универсальные обработки Дебиторская и кредиторская задолженность v7.7 1С7:ТиС Россия УУ Абонемент ($m)

Определим «Взаиморасчёт» как операцию списания долгов на сумму долга или его части между двумя и, или более объектами. Причём у всех участников взаимных зачётов снижается сумма обязательств.

1 стартмани

06.06.2011    18120    67    Шёпот теней    168    

ЗиК 309. Исправление дней за счет работодателя в переходящих больничных.

Обработка документов Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия БУ Абонемент ($m)

07.04.2011 Внесена небольшая поправка, на случай "разорванных" дней за счет работодателя. Для тех кто уже обновился или запускал обработку, скачайте ее снова и перезапустите разок. ЗиК 309. Для тех кто делал исправление количества дней за счет работодателя в переходящих больничных с 2010 на 2011, например как было описано тут:

1 стартмани

06.04.2011    14819    184    Ulfhedhinn    12    

Распределение больничного листа для ЗИК 7.7 релиз 308

Зарплата Практика программирования Зарплата v77::Расчет 1С7:ЗиК Россия БУ Абонемент ($m)

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

1 стартмани

08.03.2011    13268    305    Jacob34    33    

Класс 1С++ для доступа к базе данных FireBird

Внешние источники данных Практика программирования Разработка внешних компонент v7.7 1cv7.md Абонемент ($m)

Класс написан для упрощения работы программиста - уменьшения объема кода.

1 стартмани

04.03.2011    89058    75    wing    3    

Ошибка формирования свода проводок ЗИК 306 - в январе 2011 не формируются проводки по кт 97 счета

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия Абонемент ($m)

Ошибка формирования свода проводок ЗИК 306 - в январе 2011 не формируются проводки по кт 97 счета

1 стартмани

08.02.2011    14013    467    melenaspb    28    

Проверка обновлений

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Абонемент ($m)

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

1 стартмани

30.01.2011    15302    441    malev    24    

Графин 7.7. (окончание)

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Предыдущие мои публикации Граф(ин) 7.7. и Граф(ин) 7.7. (дополнение) носили, скорее, умозрительный характер, имея одной из целей продемонстрировать, что деревья в частности и графы вообще вполне уживаются с семерочной платформой. Теперь это настоящий граф.

1 стартмани

26.11.2010    18193    45    Арчибальд    129    

Ошибка в "Расчет страховых взносов" по тарифам УСН в ЗиК 7.70.301

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия БУ ФОМС, ПФ, ФСС Абонемент ($m)

Ошибка в "Расчет страховых взносов" по тарифам УСН в конфигурации ЗиК 7.70.301

1 стартмани

14.10.2010    11216    169    oninfostart    13    

Прикрепление и хранение файлов в документах и элементах справочников

Практика программирования v7.7 1cv7.md Абонемент ($m)

Простой способ прикрепления и хранения файлов в документах и элементах справочников

1 стартмани

27.09.2010    6154    170    topasha    16    

[Обучаловка] Знакомство с объектом «Дерево+Таблица» внешней компоненты «FormEx»

Практика программирования Разработка внешних компонент v7.7 1cv7.md Россия Абонемент ($m)

Ликбез для «штатных» программистов по объекту «Дерево+Таблица» внешней компоненты «FormEx»

1 стартмани

13.08.2010    35873    250    venger    17    

Универсальная подсистема "Фабрика событий" v 1.0 + "Доп. права доков" v 2.0 + "Сканы доков" v 2.0

Практика программирования Работа с интерфейсом v7.7 1cv7.md Россия Абонемент ($m)

Подсистема рассчитана на установку и работу в любой конфигурации, установка требует минимальных изменений в конфигурации, прописать пару строк в глобальном модуле и объединить с md'шкой (добавляется несколько объектов), подробнее см. описание установки. В дальнейшем, после установки в какую-либо конфигурацию, если обновлять эту конфигурацию типовыми обновлениями, то нужно будет только прописать заново эти пару строк в глобальном модуле, после обновления, и все. "Фабрика событий" делалась для объединения и совместной работы в одной конфигурации двух подсистем "Доп. права доков" v 2.0 (http://infostart.ru/public/22202/) и "Сканы доков" v 2.0 (http://infostart.ru/public/70831/). Версии 2.0 этих подсистем уже включены и идут совместно с "Фабрикой событий". Чтобы не повторяться, с функционалом объединяемых подсистем можно ознакомиться по приведенным ссылкам. Если в двух словах. Подсистема "Доп. права доков" позволяет запрещать пользователям системы изменять уже введенные документы тех или иных авторов (запись, проведение, отмена проведения, пометка на удаление, изменение времени). Возможности настройки довольно гибки, для каждого автора каждому виду документов можно указать списки пользователей, которым запрещено изменение или разрешено. После настройки доп. прав, в случае если пользователь, откроет документ, который ему запрещено изменять, изменит его и попытается провести или записать, то это действие будет отменено и ему будет выдано соответствующее сообщение. Тоже в случае попытки отмены проведения уже проведенного документа, пометки на удаление или изменения времени документа в журналах документов. Подсистема "Сканы доков" позволяет к документам «прикреплять» файлы, на формах у всех документов появляется дополнительная вкладка «Сканы» (генерируется программно), которая позволяет добавлять новые файлы к этим документам (это могут быть картинки сканов-оригиналов документов или doc, pdf, xls – файлы), удалять их, т.е. манипулировать «прикрепленными» к документу файлами, просматривать их, а соответственно и печатать прямо из формы документа. Подсистема "Фабрика событий" ловит и рассылает события глобального модуля и форм 1С другим классам-подписчикам 1С++, используя механизм класса "МенеджерСобытий" компоненты 1С++. Позволяет объединять в одной конфигурации и параллельно работать нескольким подсистемам (классам) использующим перехват событий глобального модуля и форм. Используются внешние компоненты 1С++ и FormEx. Выложена демо-конфа, для быстрого ознакомления, в которой установлены все эти три подсистемы и совместно работают, md'шку этой конфы можно использовать для установки в другие конфигурации (см. описание установки). В демо-конфигурации, есть также простенькие документы "Приход товаров", "Расход товаров" со справочниками "Товары" и "Пользователи", журнал "Общий" и отчет "Остатки товаров" (по регистру остатков "Остатки товаров"), это все можно использовать для тестирования и ознакомления с предлагаемым функционалом подсистем.

1 стартмани

30.05.2010    26342    292    venger    39    

Универсальная подсистема «Сканы документов» v 1.0

Сервисные утилиты Практика программирования Работа с интерфейсом v7.7 1cv7.md Россия Абонемент ($m)

Подсистема рассчитана на установку и работу в любой конфигурации, установка требует минимальных изменений в конфигурации (см. описание). После установки подсистемы к документам становится возможным «прикреплять» файлы, на формах у всех документов появляется дополнительная вкладка «Сканы» (генерируется программно), которая позволяет добавлять новые файлы к этим документам (это могут быть картинки сканов-оригиналов документов или doc, pdf, xls – файлы), удалять их, т.е. манипулировать «прикрепленными» к документу файлами, просматривать их, а соответственно и печатать прямо из формы документа. Все это с минимальными изменениями конфигурации, пару строк в глобальнике и установка md'шки (добавляется несколько объектов). Используются внешние компоненты 1С++ и FormEx.

1 стартмани

26.05.2010    26684    208    venger    25    

Твоя реклама у клиента на вкладке "Свойства компьютера" или "Афоня !!! ты мне рубль должен"

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

Делаем себе рекламу у клиента на вкладке "Свойства компьютера" На рабочем столе компьютрера, если кликнуть правой кнопкой по значку "Мой компьютер" откроется окошко "Свойства моего комьютера". Многие производители ПО или сервисных центров - умудряются там разместить свой логотип компании. А мы,что хуже ?

1 стартмани

25.03.2010    19120    157    Tatitutu    18    

Игра: "Стрелковый тир" - Добро пожаловать или подготовка к олимпиаде в Сочи 2014

Практика программирования v7.7 openconf 1cv7.md Россия Абонемент ($m)

Стрелковый тир. А у тебя зоркий глаз? Готов ли ты защищать Родину?

1 стартмани

05.03.2010    17557    146    Tatitutu    15    

Перевод кода макроса в код для 1С

Практика программирования Загрузка и выгрузка в Excel Инструментарий разработчика openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

Возникла необходимость запускать из под 1С в excel макросы. Макрос записывал в самом excel,затем переводил код под 1С...,-надоело муторное проставление строк после ..CodeModule.InsertLines("..,поиск кавычек и.т.д..,в связи с чем решил написать обработку,переводящую код макроса в код для запуска из под 1С. Может кому ещё сгодится

1 стартмани

22.01.2010    22374    282    D9ID9I_SaIIIa    25    

Обучение: Методическое пособие "Оперативный учет"

Математика и алгоритмы Практика программирования v77::ОУ 1cv7.md Россия Абонемент ($m)

Методическое пособие по компоненте "Оперативный учет" и примеры конфигураций по методическому пособию

10 стартмани

24.11.2009    20416    1613    GSoft    31    

Мои опыты чтения динамических WEB-страниц

WEB Практика программирования v7.7 1cv7.md Абонемент ($m)

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

1 стартмани

07.11.2009    42966    428    mai    41