+375 29 605 73 35
Заказать звонок
Минск, ул. Татарская 3, этаж 3, офис 315
Сопровождение информационных систем
Компания
  • О компании
  • Клиенты и партнеры
  • Сотрудники
  • Отзывы
  • Вакансии
  • Реквизиты
1С Предприятие
  • Автоматизация 1С : Предприятия 8
    • Предпроектное обследование
    • Разработка конфигурации с нуля
    • Внедрение 1С : Предприятие 8
    • Доработка и настройка 1С
  • Внедрение 1С
    • Комплекс работ по адаптации и настройке программных продуктов «1С
  • Демонстрация типовых решений 1с для Беларуси
    • 1С:Управление торговлей для Беларуси, редакция 3.4
    • 1С:Розница для Беларуси, редакция 2.2
    • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
    • 1С:Бухгалтерия для Беларуси, редакция 2.1
    • 1С УНФ (Управление нашей фирмой)
    • 1С КА 2.4 ( Комплексная автоматизация)
  • Кейсы 1С
    • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
    • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
    • Расширенный список справочника Контрагентов для УТ ХьюменСистем
    • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
    • Интеграция с маркетплейсами озон и валберис
  • Консультация по 1С
    • Разовое консультация ( 75.00 руб.коп)
    • Тарифные планы на сопровождение информационных систем
  • Построение аналитики и дашбордов
    • 1С Аналитика
    • Построение аналитики на Power BI
  • Продажа Битрикс24
Битрикс24
  • Готовые кейсы для битрикс24
  • Новости и статьи Битрик24
  • Попробовать бесплатно битрикс 24
  • Программы 1С
Информация
  • Новости
  • Статьи
Контакты
    Сопровождение информационных систем
    Компания
    • О компании
    • Клиенты и партнеры
    • Сотрудники
    • Отзывы
    • Вакансии
    • Реквизиты
    1С Предприятие
    • Автоматизация 1С : Предприятия 8
      • Предпроектное обследование
      • Разработка конфигурации с нуля
      • Внедрение 1С : Предприятие 8
      • Доработка и настройка 1С
    • Внедрение 1С
      • Комплекс работ по адаптации и настройке программных продуктов «1С
    • Демонстрация типовых решений 1с для Беларуси
      • 1С:Управление торговлей для Беларуси, редакция 3.4
      • 1С:Розница для Беларуси, редакция 2.2
      • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
      • 1С:Бухгалтерия для Беларуси, редакция 2.1
      • 1С УНФ (Управление нашей фирмой)
      • 1С КА 2.4 ( Комплексная автоматизация)
    • Кейсы 1С
      • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
      • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
      • Расширенный список справочника Контрагентов для УТ ХьюменСистем
      • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
      • Интеграция с маркетплейсами озон и валберис
    • Консультация по 1С
      • Разовое консультация ( 75.00 руб.коп)
      • Тарифные планы на сопровождение информационных систем
    • Построение аналитики и дашбордов
      • 1С Аналитика
      • Построение аналитики на Power BI
    • Продажа Битрикс24
    Битрикс24
    • Готовые кейсы для битрикс24
    • Новости и статьи Битрик24
    • Попробовать бесплатно битрикс 24
    • Программы 1С
    Информация
    • Новости
    • Статьи
    Контакты
      Сопровождение информационных систем
      • Компания
        • Назад
        • Компания
        • О компании
        • Клиенты и партнеры
        • Сотрудники
        • Отзывы
        • Вакансии
        • Реквизиты
      • 1С Предприятие
        • Назад
        • 1С Предприятие
        • Автоматизация 1С : Предприятия 8
          • Назад
          • Автоматизация 1С : Предприятия 8
          • Предпроектное обследование
          • Разработка конфигурации с нуля
          • Внедрение 1С : Предприятие 8
          • Доработка и настройка 1С
        • Внедрение 1С
          • Назад
          • Внедрение 1С
          • Комплекс работ по адаптации и настройке программных продуктов «1С
        • Демонстрация типовых решений 1с для Беларуси
          • Назад
          • Демонстрация типовых решений 1с для Беларуси
          • 1С:Управление торговлей для Беларуси, редакция 3.4
          • 1С:Розница для Беларуси, редакция 2.2
          • 1С:Зарплата и Управление Персоналом для Беларуси, редакция 3.0
          • 1С:Бухгалтерия для Беларуси, редакция 2.1
          • 1С УНФ (Управление нашей фирмой)
          • 1С КА 2.4 ( Комплексная автоматизация)
        • Кейсы 1С
          • Назад
          • Кейсы 1С
          • Расширенный список справочника контрагентов для Управление торговлей для Беларуси, редакция 3
          • Расширенный список справочника Контрагентов для Бухгалтерии для Беларуси, редакция 2
          • Расширенный список справочника Контрагентов для УТ ХьюменСистем
          • Внедрение программного обеспечения «1С: Предприятие 8. Бухгалтерия сельскохозяйственного предприятия»
          • Интеграция с маркетплейсами озон и валберис
        • Консультация по 1С
          • Назад
          • Консультация по 1С
          • Разовое консультация ( 75.00 руб.коп)
          • Тарифные планы на сопровождение информационных систем
        • Построение аналитики и дашбордов
          • Назад
          • Построение аналитики и дашбордов
          • 1С Аналитика
          • Построение аналитики на Power BI
        • Продажа Битрикс24
      • Битрикс24
        • Назад
        • Битрикс24
        • Готовые кейсы для битрикс24
        • Новости и статьи Битрик24
        • Попробовать бесплатно битрикс 24
        • Программы 1С
      • Информация
        • Назад
        • Информация
        • Новости
        • Статьи
      • Контакты
      • +375 29 605 73 35
      Минск, ул. Татарская 3, этаж 3, офис 315
      info@sectorsystem.by
      • Главная
      • Информация
      • Статьи
      • Что такое контекст выполнения (клиент, сервер) и почему мой код не видит переменную?

      Что такое контекст выполнения (клиент, сервер) и почему мой код не видит переменную?

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

      Что такое контекст выполнения?

      В управляемом приложении 1С код выполняется в двух основных контекстах:

      • Клиентский контекст — выполняется на компьютере пользователя

      • Серверный контекст — выполняется на сервере 1С

      Клиентский контекст

      bsl
      // Этот код выполняется на компьютере пользователя
      &НаКлиенте
      Процедура ПриОткрытии(Отказ)
          // Работа с элементами формы
          Элементы.ПолеВвода.Видимость = Ложь;
          
          // Можно обращаться к реквизитам формы
          Объект.Наименование = "Новое значение";
          
          // Вывод сообщений пользователю
          Сообщить("Форма открыта!");
      КонецПроцедуры

      Серверный контекст

      bsl
      // Этот код выполняется на сервере
      &НаСервере
      Процедура ОбработатьДанныеНаСервере()
          
          // Работа с базой данных
          Запрос = Новый Запрос;
          Запрос.Текст = "ВЫБРАТЬ | Справочник.Номенклатура";
          
          // Обращение к любым глобальным объектам
          Документ = Документы.ЗаказПокупателя.СоздатьДокумент();
          
      КонецПроцедуры

      Почему возникает ошибка "Переменная не определена"?

      Пример 1: Прямой вызов серверного метода из клиента

      bsl
      // НЕПРАВИЛЬНО! Так работать не будет
      &НаКлиенте
      Процедура КнопкаВыполнитьНажатие(Кнопка)
          
          ПеременнаяНаКлиенте = "Привет";
          
          // Ошибка! Серверный метод не видит клиентские переменные
          Результат = ОбработатьНаСервере(ПеременнаяНаКлиенте);
          
      КонецПроцедуры
      
      &НаСервере
      Функция ОбработатьНаСервере(Параметр)
          // Здесь переменная ПеременнаяНаКлиенте не существует!
          Возврат Верх(Параметр); // Будет ошибка
      КонецФункции

      Пример 2: Неправильная передача параметров

      bsl
      // НЕПРАВИЛЬНО
      &НаКлиенте
      Процедура Кнопка1Нажатие(Кнопка)
          
          СписокДанных = Новый СписокЗначений;
          СписокДанных.Добавить("Значение1");
          
          // Ошибка! Нельзя передать объект с клиента на сервер напрямую
          ОбработатьНаСервере(СписокДанных);
          
      КонецПроцедуры

      Как правильно работать с контекстами

      Способ 1: Передача простых параметров

      bsl
      // ПРАВИЛЬНО
      &НаКлиенте
      Процедура КнопкаВыполнитьНажатие(Кнопка)
          
          ИсходныйТекст = "текст для обработки";
          
          // Передаем простые параметры на сервер
          Результат = ОбработатьНаСервере(ИсходныйТекст);
          
          Сообщить(Результат); // Выведет: "ТЕКСТ ДЛЯ ОБРАБОТКИ"
          
      КонецПроцедуры
      
      &НаСервере
      Функция ОбработатьНаСервере(ТекстДляОбработки)
          
          // Работаем с данными на сервере
          Результат = Верх(ТекстДляОбработки);
          
          Возврат Результат;
          
      КонецФункции

      Способ 2: Использование серверных переменных и методов

      bsl
      // ПРАВИЛЬНО
      &НаСервере
      Перем СервернаяПеременная; // Объявляем на сервере
      
      &НаСервере
      Процедура ПриСозданииНаСервере(Отказ)
          
          // Инициализируем серверную переменную
          СервернаяПеременная = "Данные, доступные на сервере";
          
      КонецПроцедуры
      
      &НаСервере
      Функция ПолучитьДанныеССервера()
          
          // Имеем доступ к серверной переменной
          Возврат СервернаяПеременная;
          
      КонецФункции
      
      &НаКлиенте
      Процедура КнопкаПоказатьНажатие(Кнопка)
          
          // Получаем данные с сервера
          Данные = ПолучитьДанныеССервера();
          Сообщить(Данные);
          
      КонецПроцедуры

      Практические примеры

      Пример 1: Работа с базой данных

      bsl
      // Клиентский код
      &НаКлиенте
      Процедура ЗагрузитьНоменклатуру(Команда)
          
          // Вызываем серверный метод для работы с БД
          СписокНоменклатуры = ПолучитьНоменклатуруССервера();
          
          // Заполняем клиентскую коллекцию
          ЗаполнитьТаблицуНаКлиенте(СписокНоменклатуры);
          
      КонецПроцедуры
      
      // Серверный код
      &НаСервере
      Функция ПолучитьНоменклатуруССервера()
          
          Запрос = Новый Запрос;
          Запрос.Текст = "
          | ВЫБРАТЬ
          |   Номенклатура.Наименование,
          |   Номенклатура.Артикул
          | ИЗ
          |   Справочник.Номенклатура КАК Номенклатура";
          
          Результат = Запрос.Выполнить().Выгрузить();
          
          Возврат Результат;
          
      КонецФункции

      Пример 2: Комплексная обработка данных

      bsl
      &НаКлиенте
      Процедура ОбработатьДокументНажатие(Кнопка)
          
          // Собираем параметры на клиенте
          Параметры = Новый Структура;
          Параметры.Вставить("ДатаНачала", Элементы.ДатаНачала.Значение);
          Параметры.Вставить("ДатаОкончания", Элементы.ДатаОкончания.Значение);
          
          // Передаем на сервер для сложной обработки
          РезультатОбработки = ВыполнитьСложнуюОбработкуНаСервере(Параметры);
          
          // Показываем результат пользователю
          ПоказатьРезультат(РезультатОбработки);
          
      КонецПроцедуры
      
      &НаСервере
      Функция ВыполнитьСложнуюОбработкуНаСервере(ПараметрыОбработки)
          
          // Здесь выполняем ресурсоемкие операции
          // Работа с базой данных, сложные расчеты и т.д.
          
          Возврат РезультатРасчетов;
          
      КонецФункции

      Таблица: Что можно делать в разных контекстах


      Действие Клиент Сервер
      Работа с элементами формы ✅ Да ❌ Нет
      Вывод сообщений пользователю ✅ Да ❌ Нет
      Работа с базой данных (запросы) ❌ Нет ✅ Да
      Создание объектов (документы, справочники) ❌ Нет ✅ Да
      Обращение к глобальным объектам ❌ Нет ✅ Да
      Использование системных переменных ✅ Да ✅ Да

      Частые ошибки и их решения

      Ошибка 1: Передача сложных объектов

      bsl
      // НЕПРАВИЛЬНО
      &НаКлиенте
      Процедура Тест()
          ОбъектКлиента = Новый Структура("Ключ", "Значение");
          ОбработатьНаСервере(ОбъектКлиента); // Ошибка!
      КонецПроцедуры
      
      // ПРАВИЛЬНО
      &НаКлиенте
      Процедура Тест()
          // Передаем простые значения
          Значение1 = "Данные";
          Значение2 = 100;
          ОбработатьНаСервере(Значение1, Значение2);
      КонецПроцедуры

      Ошибка 2: Обращение к элементам формы с сервера

      bsl
      // НЕПРАВИЛЬНО
      &НаСервере
      Процедура ОбновитьФорму()
          Элементы.ПолеВвода.Значение = "Новое значение"; // Ошибка!
      КонецПроцедуры
      
      // ПРАВИЛЬНО
      &НаКлиенте
      Процедура ОбновитьПоле()
          Элементы.ПолеВвода.Значение = "Новое значение";
      КонецПроцедуры
      
      &НаСервере
      Процедура ПодготовитьДанные()
          Данные = ПолучитьНовыеДанные();
          // Возвращаем данные на клиент
          Возврат Данные;
      КонецПроцедуры

      Золотые правила работы с контекстами

      1. Все операции с базой данных выполняйте на сервере

      2. Вся работа с интерфейсом выполняется на клиенте

      3. Передавайте между контекстами только простые данные

      4. Сложные объекты создавайте в том контексте, где они будут использоваться

      5. Всегда указывайте директиву компиляции (&НаКлиенте, &НаСервере)

      Заключение

      Понимание контекстов выполнения — ключевой навык для разработчика управляемых форм в 1С. Запомните простое правило: "Клиент — для интерфейса, сервер — для данных". Следуя этому принципу и используя правильные методы передачи данных между контекстами, вы избавитесь от большинства ошибок, связанных с областью видимости переменных.

      Начните применять эти практики в своих проектах, и вы увидите, как код станет более стабильным и предсказуемым!

      • Комментарии
      Загрузка комментариев...

      Назад к списку Следующая статья
      Категории
      • PowerBI0
      • Битрикс2410
      • Блок программиста 1С (Новичок)65
      • Все про 1С47
      • Советы по автоматизации бизнеса9
      Это интересно
      • От Junior 1с к Middle: план развития на первый год работы
        От Junior 1с к Middle: план развития на первый год работы
        17 ноября 2025
      • Техническое задание от бухгалтера: как перевести требования пользователя в задачи для программиста
        Техническое задание от бухгалтера: как перевести требования пользователя в задачи для программиста
        17 ноября 2025
      • Используем готовые библиотеки: обзор Библиотеки стандартных подсистем (БСП) для новичка
        Используем готовые библиотеки: обзор Библиотеки стандартных подсистем (БСП) для новичка
        17 ноября 2025
      • Синтакс-помощник — ваш главный справочник. Как им пользоваться эффективно?
        Синтакс-помощник — ваш главный справочник. Как им пользоваться эффективно?
        17 ноября 2025
      • Работа с датами и временем в 1С: типичные задачи и функции
        Работа с датами и временем в 1С: типичные задачи и функции
        17 ноября 2025
      • Выгрузка и загрузка данных XML в 1С: Практическое руководство для начинающих
        Выгрузка и загрузка данных XML в 1С: Практическое руководство для начинающих
        10 ноября 2025
      • Пишем свою первую обработку: Загрузка данных из Excel в 1С
        Пишем свою первую обработку: Загрузка данных из Excel в 1С
        10 ноября 2025
      • Обработка проведения документа: Что такое модуль объекта и модуль формы
        Обработка проведения документа: Что такое модуль объекта и модуль формы
        10 ноября 2025
      • Ошибка при вызове конструктора в 1с
        Ошибка при вызове конструктора в 1с
        23 октября 2025
      • Работа с базами данных в 1С:Предприятие
        Работа с базами данных в 1С:Предприятие
        16 октября 2025
      • Создание и настройка реквизитов в 1С:Предприятие
        Создание и настройка реквизитов в 1С:Предприятие
        16 октября 2025
      • Обработка событий в 1С:Предприятие: от основ до лучших практик
        Обработка событий в 1С:Предприятие: от основ до лучших практик
        16 октября 2025
      • Устранение ошибки «Слишком много фактических параметров» 1с
        Устранение ошибки «Слишком много фактических параметров» 1с
        15 октября 2025
      • Как установить пароль на обработку 1с
        Как установить пароль на обработку 1с
        15 октября 2025
      • Как в 1С восстановить поврежденную базу «1С:Предприятие 8»
        Как в 1С восстановить поврежденную базу «1С:Предприятие 8»
        15 октября 2025
      • Системные перечисления и их роль в разработке 1С
        Системные перечисления и их роль в разработке 1С
        23 сентября 2025
      • ERP или Комплексная автоматизация: что выбрать для компании?
        ERP или Комплексная автоматизация: что выбрать для компании?
        22 сентября 2025
      • Отображение количества записей в закладке табличной части: практическое руководство
        Отображение количества записей в закладке табличной части: практическое руководство
        4 сентября 2025
      • Как сделать круговую диаграмму в 1С для наглядного анализа данных
        Как сделать круговую диаграмму в 1С для наглядного анализа данных
        27 августа 2025
      • Как вывести юридический адрес контрагента в 1С: пошаговый урок
        Как вывести юридический адрес контрагента в 1С: пошаговый урок
        25 августа 2025
      Облако тегов
      1C:8 1С 1С ERP 1С ERP Беларусь 1с бухгалтерские проводки 1С Комплексная автоматизация 1С Комплект поддержки Беларусь 1с проводки 1С рассылка 1С синхронные методы 1с электронная почта 1С-Битрикс 1С:7 CRM абонентское обслуживание 1С автозаполнение документов в 1С автоматизация зарплаты 1С автоматизация склада 1С Автоматическое развертывание анализ процессов безопасность Безопасность труда Битрикс24 Бухгалтерский учет виды обмена в 1С Визуализация данных вложенные поля СКД внедрение внедрение Битрикс24 возможности платформы Битрикс24 временные таблицы в 1С вывод количества вывод списка 1с гайд по 1С Главное в 1С Диаграмма в 1С дизайн динамический интерфейс динамический список 1с загрузка в 1С загрузка из excel запросы в 1С Инструктажи интеграция 1С с CRM интеграция 1С с Битрикс интеграция 1С с маркетплейсами интеграция с платежными системами интерьер Искусственный интеллект исправление ошибок в 1С консоль запросов 1С константы 1С Контактная информация Контрагент Круговая диаграмма купить 1С лиды Машинное обучение мобильное приложение монопольный режим 1С налоговая отчетность 1С Беларусь написание кода 1С настройка списков 1с обзор обновление 1С обновление 1С Беларусь обработка исключений обучение пользователей 1С оптимизация запросов в 1С Оптимизация отчетов в 1С отчёты в 1С Охрана труда Печатная форма план обмена в 1С подсчет записей Предиктивная аналитика программирование 1С Работа с документами в Битрикс24 Рабочие места Рассылки расчет стоимости внедрения роли в 1С синхронизация CRM и 1С СКД советы разработчикам создание и настройка констант 1С создание и настройка ролей в 1С сопровождение 1С Беларусь сопровождение 1С онлайн составление отчетов в Битрикс табличная часть телеграм бот 1с тренинг 1С Минск удалённая поддержка 1С управление персоналом 1С УправлениеКонтактнойИнформацией ускорение работы в 1С Установить 1С в минске установка битрикс учет склада 1С читаемый код 1С шаблоны документов в 1С Юридический адрес
      Автоматизируем любой бизнес
      Компания
      О компании
      Клиенты и партнеры
      Сотрудники
      Отзывы
      Вакансии
      Реквизиты
      Услуги
      Автоматизация 1С : Предприятия 8
      Внедрение 1С
      Демонстрация типовых решений 1с для Беларуси
      Кейсы 1С
      Консультация по 1С
      Построение аналитики и дашбордов
      Продажа Битрикс24
      Наши контакты

      +375 29 605 73 35
      Пн. – Пт.: с 9:00 до 18:00
      Минск, ул. Татарская 3, этаж 3, офис 315
      info@sectorsystem.by
      © 2026 SectorSystem- сопровождение информационных систем. Все права защищены.