Программисту 1C — Страница 4 — 1C-h
 

Вопрос Как определить программно, существует ли у документа требуемый реквизит С давних времен в типовых конфигурациях для этого существовала специальная функция. В конфигурациях последних редакций эта функция стала более универсальной и кроме того стала неожиданно оригинальной, даже эстетически восхитительной. Так, на сегодня, в 2019 г., эта функция называется ЕстьРеквизитИлиСвойствоОбъекта и […]

Как программным путем отменить проведение документа в 1С v8? Рассмотрим на примере отмены проведения всех документов «ПриходныйОрдерНаТовары», на основании которых (в структуре подчиненности) нет ни одного проведенного документа. Для получения структуры подчиненных документов используется метод…

3

Вопрос Выбор принтера для быстрой непосредственной печати — как организовать в 1С:Предприятии. COM-соединение со службой WMI Ответ Обычно в 1С:Предприятии последовательность действий при печати документов бывает в двух вариантах: Вариант 1 – жмем на кнопку «печать», и на принтере сразу «вылезает» лист с распечатанным текстом. Вариант 2 – жмем на […]

2

Вопрос Как разбираться в больших запросах. Консоль запросов. Как посмотреть, чем заполнены временные таблицы в запросе? Ответ Довольно часто в типовых конфигурациях 1С встречаются очень большие сложные для восприятия запросы. Например, запрос автозаполнения документа «Начисление зарплаты» содержит в себе порядка 3000 строк. И это далеко не предел. В современных редакциях […]

2

Вопрос Как скопировать колонку таблицы значений. Ответ Допустим, нужно скопировать колонки «Документ» и «Дата» таблицы значений «тзТаблица1» в новую таблицу «тзТаблица2». Сделать это можно так: тзТаблица2 = Новый ТаблицаЗначений; тзТаблица2 = тзТаблица1.Скопировать(«Документ, Дата»); Немного изменим условие. Допустим, есть две разные таблицы и нужно только перенести (скопировать) одну колонку из одной […]

Вопрос Как в справочнике добавить кнопку, которая в одно нажатие отобрала бы элементы справочника с конкретным (заданным) значением реквизита? Ответ Для этого под кнопкой на форме списка справочника помещается примерно такая процедура: // Процедура выполняет отбор ячеек типа «Упаковка» и автоматически отключает иерархию // СправочникСписок — основной реквизит формы (см. […]

Вопрос Когда используется директива «ИМЕЮЩИЕ» в языке запросов 1С? Чем «ИМЕЮЩИЕ» отличается от условия «ГДЕ»? Ответ Отличие директивы «ИМЕЮЩИЕ» от условия «ГДЕ» состоит в том, что ее можно использовать для агрегатных функций. Обязательным условием при этом является использование группировки по остальным полям. Пример: «ВЫБРАТЬ | тбЗадания.Задание, | СУММА(тбЗадания.КоличествоИсполнителей) КАК КоличествоИсполнителей […]

1

Вопрос Создание колонки таблицы значений различных типов в 1С v8 Ответ При создании колонки таблицы значений в качестве типа можно передавать массив типов, и можно конкретный тип. Массив типов используется, когда нужно указать несколько различных типов для одной колонки. Для указания типов используется «общий объект» — «Описание типов». Поэтому сначала […]

Вопрос Как в 1С реализовать в диалоговой форме процент выполнения цикла, т.е. вывести ProgressBar (см. рисунок) Ответ Шаг первый. Размещаем в форме соответствующий элемент формы — см. меню конфигуратора «Форма — Вставить элемент управления…-Индикатор». Если проставить галочку «Отображать проценты», тогда, кроме собственно закрашивания прогрессбара, в дополнение, будут отображаться проценты числом. […]

4

Подборка «хитростей» работы, без которых было бы гораздо сложнее… Когда вы читаете программный модуль, и видите вызов процедуры или функции, или использование какой-то переменной, то, чтобы перейти к этой функции, или найти, где определена эта переменная, нужно щелкнуть на ней мышкой и нажать клавишу F12 — осуществится переход. Чтобы вернуться […]