www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

 Читать далее...

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

 Читать далее...

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

 Читать далее...

Книжная полка  

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

 Читать далее...

Сетевая инфраструктура  

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

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Книжная полка  

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

Накануне лета издательство «БХВ» выпустило книжные новинки, от которых любителям чтения будет

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9801
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 9945
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 7383
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 4601
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 5421
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 5397
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 8111
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 4765
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 5006
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 9079
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 12514
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 14028
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 15785
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 10657
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 8680
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 6911
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 6035
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 4955
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 4603
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 4832
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Распространенные ошибки программистов

Архив номеров / 2008 / Выпуск №10 (71) / Распространенные ошибки программистов

Рубрика: Базы данных /  Изучаем «1С»

Андрей Луконькин

Распространенные ошибки программистов

Предупрежден – значит вооружен!

В любой среде программирования существуют свои правила, и среда программирования «1С:Предприятие» не является исключением. Правила делятся на обязательные (когда программный код просто не будет выполняться) и необязательные (программа работать будет, но не оптимально). Рассмотрим некоторое собрание ошибок, которых следует избегать в работе.

Для платформы «1С:Предприятие» 8.1

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

Правильно:

 ЮрФизЛицоФирмы=Фирма.ЮрФизЛицо;

КППФирмы= ЮрФизЛицоФирмы.КПП;

КППФирмы= ЮрФизЛицоФирмы.КПП;

Неправильно:

 ИННФирмы=Фирма.ЮрФизЛицо.ИНН;

КППФирмы=Фирма.ЮрФизЛицо.КПП;

  • Вместо процедуры «ПриВыводеСтроки» следует использовать «ПриПолученииДанных».
  • Запрещено создание объектов и получение постоянных значений в цикле (например, создание списка значений, получение значения константы, предопределенного элемента и т. д.).
  • При создании процедур поля ввода, связанных с интерактивным выбором (через кнопку), необходимо учитывать, что значения можно еще и ввести непосредственно в элемент управления. Кроме того, значения также можно и очистить (<CTRL> + <F4>).
  • В модуле объекта запрещено обращение к реквизитам типа «Этот-Объект.Реквизит». Данное выражение лучше заменить на «Ссылка.Реквизит».
  • В модуле проведения документа необходимо четко понимать, что в процедуре «Перед записью» – ссылка на объект еще не существует или уже устарела. Далее ссылка создается, но процесс находится в транзакции и может произойти откат.
  • Не рекомендуется использовать в процедуре «ОбновлениеОтображения» сложных и трудоемких расчетов, так как это значительно замедляет работу системы.
  • Не рекомендуется передавать объекты в качестве параметров процедур и функций.
  • При обращении к любому реквизиту стороннего объекта происходит считывание всего объекта. При повторном обращении, если прошло достаточно мало времени, данные считываются из кэша. Поэтому, если позволяет алгоритм, все необходимые значения нужно считывать сразу с использованием временных переменных. При получении значений реквизитов особо «тяжелых» объектов лучше воспользоваться запросом, который считывает только требуемые поля, не загружая весь объект.

 Кроме правильного кода, в программе важно и то, насколько комфортно в ней работать.

  • Элементы формы должны иметь имена, отражающие их сущность. Это облегчит вам жизнь при обращении к данным формы. Например, вместо имен Надпись1 и Панель2 лучше использовать НадписьКонтрагент и КомманднаяПанельТаблицыТоваров.
  • Элементы формы должны быть расположены на форме с выравниванием и настроенными привязками. Проверить правильность работы привязок можно, не выходя из Конфигуратора (<Ctrl> + <R>). При изменении размеров формы размеры элемента должны изменяться пропорционально и не перекрывать друг друга.
  • Элементы формы должны нести только необходимый и верный функционал. Например: поле ввода имеет кнопку «очистка», только если допускается использование пустого значения, имеет кнопку «открытие», если допускается просмотр элемента.
  • Хорошим тоном считается наличие всплывающих подсказок при наведении курсора мыши на элемент формы.

 При работе с запросами основной упор делается на оптимизацию производительности.

  • При получении данных из выборки запроса лучше избежать организации получения значений реквизитов через точку. Все необходимые данные должны быть получены в самом запросе.
  • При использовании запроса в отчетах в печатную форму выводить нужно строковые значения полей. Например, вместо Выборка.Контрагент использовать Выборка.Контрагент.Наименование.
  • Если есть такая возможность, то лучше организовать логику работы программы так, чтобы при выборке данных из нескольких таблиц использовать в запросе полное объединение (ОБЪЕДИНИТЬ ВСЕ) вместо левого/правого соединения.
  • Если в запросе необходимо отфильтровать данные списком значений (например, получение остатков только по позициям номенклатуры документа), нужно передавать в запрос предварительно созданный массив и фильтровать уже по нему вместо фильтра по результату подзапроса.
  • Максимальное количество вложенности запросов не должно превышать 2. На практике всегда можно построить логику программы по-другому, на экзамене «1С:Специалист» это считается грубейшей ошибкой.
  • Не нужно получать поля, которые в дальнейшем использоваться не будут. Также не нужно делать лишние группировки и итоги.
  • При работе с виртуальными таблицами условия должны находиться в параметрах таблицы. Это увеличивает производительность в разы.
  • При использовании таких функций, как СУММА, МАКСИМУМ и др., по полям, в которых может содержаться значение NULL, нужно эти поля преобразовать функцией ЕСТЬNULL().

Для платформы «1С:Предприятие» 7.7

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

  • Точка с запятой после команды КонецПроцедуры или КонецФункции.
  • Отсутствие директивы «Далее» для процедуры или функции, которые стоят ниже, чем вызывающая их процедура или функция.
  • Для объектов, созданных при помощи оператора СоздатьОбъект(...), отсутствие команд Записать(), Сохранить() или Провести(...).
  • Отсутствие директивы «Экспорт» для процедуры, функции, переменной глобального модуля, которые используются в других модулях.
  • Получение бухгалтерских итогов на произвольную дату без «Ит.ВыполнитьЗапрос().
  • Иногда начинающие программисты путают методы ТекущаяСтрока() и НомерСтроки. В таблице значений ТекущаяСтрока() – текущая строка на визуальной таблице (элемент диалога), НомерСтроки – для таблицы значений, созданной по СоздатьОбъект().
  • Использование методов ПолучитьЭлемент() или ПолучитьДокумен() без предварительной команды ВыбратьЭлементы(); или ВыбратьДокументы();
  • Имя переменной в форме совпадает с именем реквизита формы. Также возможна ошибка, когда имя реквизита формы совпадает с именем глобальной переменной.
  • Использование периодического реквизита без метода ИспользоватьДату().
  • Попытка создать операцию для документа с отсутствующим признаком «Бухгалтерский учет», или попытка создать движение по регистру для документа с отсутствующим флагом оперативного учета.
  • Если название переменной содержит символы кириллицы, попытка получить значение переменной с символами латиницы или наоборот.
  • Попытка записать периодический реквизит справочника, у которого нет галочки «Изменяется документами».
  • В конце модуля бухгалтерского документа часто забывают писать Операция.Записать().
  • Счётчик в запросе нужно писать с буквой «ё».
  • Ошибка порядка обхода элементов диалога для радиокнопок (переключателей).
  • При удалении строк из таблицы значений не принимается во внимание, что после удаления строки номер следующей уменьшается на единицу и соответственно в цикле по номерам строки перескакивают через одну.

Надеюсь, что собранный перечень ошибок поможет улучшить качество и скорость работы. Также было бы очень интересно пополнить эту коллекцию. Предлагаю всем тем, кто обладает подобной информацией, поделиться ей на просторах Сети. Например, на форуме журнала: http://www.samag.ru/forum или форуме системных администраторов Sysadmins.SU в разделе «1С»: http://forum.sysfaq.ru/index.php?showforum=22. Подобная копилка мыслей поможет коллегам и оградит в будущем от ошибок.


Комментарии отсутствуют

Добавить комментарий

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru