Проверяются следующие потенциальные ошибки:
— Описание параметра или переменной, совпадающей с глобальной переменной, переменной контекста или реквизитом контекста
Например, у вас в форме документа есть реквизит Номенклатура, и вы определяете функцию ПроверитьНоменклатуру(Номенклатура). В этом случае легко запутаться, особенно когда процедура большая, когда имеется в виду реквизит документа, а когда — параметр процедуры.
Также в обязательном порядке контролируется факт присваивания глобальной переменной в модуле какого-либо объекта. По хорошему, чем меньше подобных «сторонных эффектов», тем надёжней код. Не говоря уже о том, что вы можете случайно использовать то же самое имя переменной, что и в глобальном модуле, считая, что переменная локальная.
— Присваивание параметров процедуры/функции, переданных по ссылке
Несмотря на то, что метод «возврата значения в параметре» часто используется в 1С, это может привести к сложно определяемым ошибкам, когда вы меняете в процедуре значение её параметра, который не предназначен, по алгоритму, для возврата значения.
Для указания, что параметр процедуры/функции должен возвращать значение, можно использовать комментарий вида
// Изменяемые параметры: Парам1, Парам2, ...
расположенный непосредственно перед (или сразу поле) строки с Процедура/Функция.
— Присваивание неявно описанной переменной
Несмотря на то, что при программировании на 1С практически не пользуются предварительным объявлением переменных посредством ключевого слова «Перем», такое объявление может иметь смысл. Оно позволяет контролировать использование одного и того же имени переменной с разным смыслом. Например, у вас объявлена в глобальном модуле переменная Сервис как СоздатьОбъект(«Сервис»), а в модуле класса Сервис = СоздатьОбъект(«ПоставщикДанных.Сервис»). И если вы не использовали явное определение переменной в модуле класса, у вас будет фактически испорчено значение глобальной переменной.
— Отсутствие инициализации описанной переменной
Тут и описывать нечего. Во многих языках программирования считается, что неинициализированная переменная — это ошибка.
Для работы обработке требуется утилита gcomp, расположеная в каталоге, входящем в path.
Не во всех конфигурациях есть функция глРазделить.
(1) brr, Спасибо. Обновил обработку.
Что бы не скачивать заново, можно вставить в код
Показать
P.S. А что, больше никаких впечатлений/мнений? Хотя бы на уровне полезно/бесполезно/фигнянепонятная?
Я вижу, что в ней надо делать какое-то условное разделение глобальных переменных на «константы», которые не должны переприсваиваться и «переменные», которые должны. Но пока не придумал, как сделать это покрасивее.
(2) полезно
(2) наверняка полезно, но ты знаешь где сейчас 7.7 и где 8.хх… 🙂
Хотя сам тоже иногда пишу для 7.7
(4) aspirator23, На мой взгляд, если не считать всякие ларьки, которым небольших денег жалко, 7.7 осталась в крупных отраслевых решениях. Которые переводить на 1с8 может быть слишком сложно/дорого. Как, например, у меня. Металлоторговля. 7.7 типа комплексная, переписанная почти полностью. Типового решения от 1С, удовлетворившего бы наши нужды, нет. Отраслевого тоже. Покупать что-то типовое и прилично дописывать — вариант дорогой и не факт, что какие-то заметные выгоды принесёт по стоимости разработки и поддержки.
Хотя, несомненно, хочется заполучить более современный инструмент разработки и ряд типового функционала (меньше велосипедов писать).
Но пока приходится жить с проектом на 7.7.