База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать и загрузить модуль в 1С: Бухгалтерия КОРП без кнопки «создать»? › Ответ в теме: Как создать и загрузить модуль в 1С: Бухгалтерия КОРП без кнопки «создать»?
В редакции 3.0 Бухгалтерии КОРП действительно нельзя просто так создать новый общий модуль через конфигуратор — там модуль либо уже есть, либо его нужно загрузить из файла.
Чтобы обойти это ограничение и запустить скрипт, сделайте так:
1. Создайте общий модуль в отдельной пустой базе 1С (например, в обычной базе «Управление торговлей» или «Бухгалтерия предприятия» без ограничений).
2. В этом модуле напишите нужный код (процедуру исправления табуляций).
3. В конфигураторе этой базы выгрузите модуль в файл (*.bsl).
4. В вашей базе КОРП в конфигураторе импортируйте этот модуль из файла (через меню «Файл» → «Загрузить из файла»).
5. После загрузки модуля в базу, в режиме предприятия вызовите процедуру из этого модуля через окно отладки или через команду.
—
Если нет возможности создать отдельную базу, можно сделать так:
— Создайте обработку (файл *.epf) в любой базе, где можно писать код.
— В обработке напишите процедуру исправления табуляций.
— Запустите обработку в вашей базе КОРП и выполните процедуру.
—
Пример кода для обработки (модуль обработки):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Процедура Выполнить(Команда) ИсправитьТабуляцииВНазначенииПлатежа(); КонецПроцедуры Процедура ИсправитьТабуляцииВНазначенииПлатежа() Запрос = Новый Запрос; Запрос.Текст = |ВЫБРАТЬ | Док.Ссылка |ИЗ | Документ.ПлатежноеПоручениеСписаниеДенежныхСредств КАК Док |ГДЕ | СОДЕРЖИТ(Док.НазначениеПлатежа, Символ(9)) Выборка = Запрос.Выполнить().Выбрать(); КоличествоИсправлено = 0; Пока Выборка.Следующий() Цикл ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); НовыйТекст = СтрЗаменить(ДокОбъект.НазначениеПлатежа, Символ(9), " "); Если НовыйТекст <> ДокОбъект.НазначениеПлатежа Тогда ДокОбъект.НазначениеПлатежа = НовыйТекст; Попытка ДокОбъект.Записать(); КоличествоИсправлено = КоличествоИсправлено + 1; Исключение Сообщить("Ошибка записи документа: " + ДокОбъект.Ссылка); КонецПопытки; КонецЕсли; КонецЦикла; Сообщить("Исправлено документов: " + Строка(КоличествоИсправлено)); КонецПроцедуры |
—
Таким образом, вы обойдёте ограничение на создание модулей в КОРП и сможете выполнить исправление.