Шпаргалка по программированию для системы 1С:Предприятие v8 — 1c-h
 

Шпаргалка по программированию для системы 1С:Предприятие v8

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,50 из 5)
Загрузка...

В этой статье будет постепенно публиковаться набор кратких шпаргалок по использованию методов языка и спосбов разработки на платформе 1С:8.2 (часть из них применима и к 8.1, но об этом упоминаться не будет).

Вопрос Как сделать так, чтобы автоматически рассчитывалась сумма (Сумма = Количество*Цена) при изменении Цены или Количества в форме документа.
Ответ В свойствах элементов формы «Количество» и «Цена» прописывается вызов события «ПриИзменении».
В модуле формы, процедура «при изменении»:

где Элементы.Материалы.ТекущиеДанные — обращение к коллекции элементов формы*, используя свойство «Элементы» объекта «УправляемаяФорма» (все свойства и методы объекта встроенного языка «УправляемаяФорма» доступны нам тут, т.к. мы находимся в Модуле Формы)

*Коллекция элементов формы является объектом встроенного языка «ВсеЭлементыФормы», содержащим все элементы формы. Т.е. это программный аналог корня дерева элементов формы. Каждый элемент формы можно получить через точку от объекта «ВсеЭлементыФормы», т.е. указав его имя в качестве свойства этого объекта. В данном случае идет обращение к табличной части «Материалы» документа (Элементы.Материалы). Табличная часть документа — это объект «ТаблицаФормы», у которого есть свойство «ТекущиеДанные». В результате выполнения команды «СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;» переменная СтрокаТабличнойЧасти будет содержать объект «ДанныеФормыСтруктура», в котором есть данные, находящиеся в текущей строке табличной части документа. Где текущая строка — это текущая интерактивно, т.е. та, на которой стоит курсор пользователя. В синакс-помощнике см. раздел «Интерфейс — ТаблицаФормы — Свойства».

Вопрос Что означает галочка «Клиент» в свойствах общих модулей.
Ответ Она означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента.

Вопрос о динамическом создании форм и программном обращении к ним.
ОтветЕсли основная форма объекта не создана и не назначена в конфигураторе, то она будет создаваться автоматически при каждом обращении к ней — как интерактивном (вызов пользователем из меню списка документов, например), так и программном. Пример программного обращения к форме:

Основные формы можно подменять формами собственной разработки, созданными в кострукторе форм.

Вопрос о событиях форм.
Ответ Существует два вида событий форм:

  • Назначаемые в формах (имя процедуры создается и назначается элементу формы, набор этих событий фиксирован для каждого элемента формы, но название может быть произвольным). Назначить событие можно не только стандартным путем в свойствах элемента формы, но и программно, с помощью метода УстановитьДействие()
  • Фиксированные — с предопределенными назначением и названием

Вопрос о видах модулей.
Ответ Виды модулей:
Модуль управляемого приложения. Выполняется при старте 1С:Предприятия в режимах тонкого клиента и веб-клиента. Переменные и процедуры этого модуля будут доступны в любом другом модуле конфигурации, кроме модуля внешнего соединения. Этому модулю доступны экспортируемые переменные и процедуры общих модулей.
Общие модули. Сами по себе не выполняются. Служат для хранения и исполнения процедур, вызываемых во время исполнения других модулей. Общий модуль будет глобальным, если в свойствах этого модуля установить флаг «Глобальный«. В этом случае процедуры этого модуля компилируются не при обращении к ним, а при запуске системы и обращение к этим функциям осуществляется по их имени, без приставки через точку наименования самого общего модуля.
Модули Объектов. Вызывается при интерактивном создании объекта(документа, элемента справочника) пользователем либо при программном создании объекта средствами встроенного языка (СоздатьЭлемент(), СоздатьДокумент()), а также при различных действиях с этим объектом (справочником, документом), которые влекут за собой вызов предопределенных процедур, которые могут быть описаны в модуле объекта, например, «ПриЗаписи()».
Модули формы. Модуль формы исполняется при создании объекта УправляемаяФорма — программно (ПолучитьФорму(), ОткрытьФорму()) или интерактивно при открытии формы пользователем.
Модуль сеанса. Выполняется при старте 1С:Предприятия в момент загрузки конфигурации — для инициализации параметров сеанса и отработки действий. связанных с сеансом работы. Не содержит экспортируемых процедур, но может использовать процедуры из общих модулей.
Модуль внешнего соединения. Используется для размещения процедур, прорабатываемых в сессии внешнего соединения.
Модуль менеджеров. Для каждого прикладного объекта существует менеджер, предназначенный для управления этим объектом как объектом конфигурации. Менеджер помогает создавать объекты, работать с формами и макетами. Процедуры модуля менеджера позволяют расширять функциональность менеджеров, предоставляемых системой — так можно описать собственные методы для объекта, которые относятся не к конкретному экземпляру объекта базы данных, а к самому объекту конфигурации.
Модуль команды. Команды — объекты, подчиненные прикладным объектам и конфигурации в целом. У каждой команды есть модуль команды, в котором можно описать предопределенную процедуру ОбработкаКоманды() для выполнения этой команды.

Вопрос о контексте
Ответ Для доступа к свойствам и методам языка в каком-то контексте, нужно сначала понять их состав, названия, типы. Чтобы узнать, какие свойства контекста у модуля формы какого-либо объекта, удобно использовать свойство «ЭтаФорма». Рассчитывая в режиме отладки значение этого свойства, можно увидеть полный состав того, что доступно в этом контексте. Аналогично, свойства контекста модуля объекта или набора записей – при отладке в модуле объекта удобно использовать свойство «ЭтотОбъект».

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

Вопрос о внутренней структуре таблиц, создаваемых 1С:Предприятием на этапе конфигурирования для хранения плана счетов
Ответ На основе объекта конфигурации «План счетов» платформа создает в базе данных таблицы, в которых будет храниться инфомация о том, какие счета (и каким образом) будет использовать предприятие. По любому счету или субсчету может вестись аналитический учет в разрезе субконто, описанных в плане видов характеристик. Для описания используемых субконто система создает в плане счетов специальную табличную часть ВидыСубконто, которая не видна в конфигураторе, но доступна средстами встроенного языка. При программировании движений в момент проведения документов в соответствующем регистре бухгалтерии нужно заполнить эти дополнительные поля, например, СчетДт и СчетКт, КоличествоДт и КоличествоКТ, СубконтоДт и СубконтоКт, примерно так: Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Материалы] = ТекСтрокаМатериалы.Материал; т.к. платформа добавляет их к таблицам на основании плана счетов.

Вопрос Что означает флажок «Корреспонденция» в регистре бухгалтерии
Ответ Флажок «Корреспонденция» говорит о том, что создаваемый регистр бухгалтерии поддерживает корреспонденции, т.е. каждая запись регистра имеет дебетовую и кредитовую часть, что позволит получать информацию не только об остатках и оборотах по счетам, но и корреспонденциях между счетами.

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

Вопрос Что такое планировщик заданий, для чего он нужен.
Ответ Планировщик заданий — это клиентское соединение с информационной базой, служащее для автоматического запуска регламентных заданий в файловом вариане работы 1С;Предприятия. Для этого в конфигураторе 1С:Предприятия создается специальная обработка, которая запускается в отдельном соединении с информационной базой в режиме 1С:Предприятие и больше не закрываются — ни обработка, ни это соединение. Дело в том, что в клиент-серверном варианте работы информационной базы регламентные задания запускаются автоматически менеджером кластера серверов 1С:Предприятия, а в файловом варианте такого «промежуточного звена», которое могло бы взять на себя автоматическое выполнение заданий, не существует — есть только клиенты и информационная база. Поэтому для автоматического выполнения регламентных заданий в файломвом варианте работы необходимо всегда иметь одно работающее клиентское соединение с информационной базой, которое будет заниматься только запуском заданий по расписанию.

Вопрос Как при сохранении какого-либо значения программным путем обновить внешний вид 1С:Предприятия — командный интерфейс, рабчий стол, открытые формы (с учетом нового значения).
Ответ Обычно эта возможность требуется, когда сохраняемое значение должно повлиять на внешний вид 1С:Предприятия. Для реализации такой возможности, чтобы внешний вид изменился сразу, т.е. без перезахода пользователем, создается событие формы «После записи»:

Вопрос Почему открытие некоторых окон блокирует другие окна.
Ответ Так происходит, когда в свойствах формы свойство «РежимОткрытияОкна» установлено в значение «Блокировать окно владельца». Если изменить на значение «Независимый», то окно будет открываться, не блокируя другие окна (см. раздел «Использование» в свойствах формы).

Вопрос Как программно изменить структуру дерева распределенной информационной базы.
Ответ Механизм распределенных информационных баз содержит программное средство конфигурирования структуры узлов распределенной базы. Для этого существует метод УстановитьГлавныйУзел() объекта ПланыОбменаМенеджер. В параметре этого метода передается ссылка на узел плана обмена распределенной информационной базы, который устанавливается главным для текущей базы. Также в этом параметре может быть передано значение Неопределено, тогда у текущей базы будет отсутствовать главный узел, т.е. она станет корневым узлом.
Пример:

При этом будут удалены все записи регистрации изменений конфигурации Узла2, относящиеся к Узлу2, передача изменений конфигурации будет возможна теперь только от Узла2 к Узлу1. Записи регистрации изменения данных удалены не будут, т.к. передача данных будет по-прежнему возможна между этими узлами.

Создание распределенной информационной базы из баз с одинаковой конфигурацией:

Вопрос В каких случаях вызывается событие «ОбработкаВыбора» формы документа.
Ответ Это событие вызывается в двух случаях: когда в форме выполнен интрерактивный выбор и когда в форме вызван метод ОповеститьОВыборе().

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

Вопрос Как назначить произвольную форму выбора ссылки на объект, являющийся типом реквизита другого объекта сразу для всех форм этого другого объекта. Предположим, эта произвольная форма уже сконструирована в метаданных, например, произвольная форма выбора сотрудника в справочнике сотрудников. В документе «Оказание услуг» есть реквизит «Мастер», со ссылкой на справочник сотрудников. Требуется, чтобы во всех формах документа «Оказание услуг» при открытии списка сотрудников для выбора, открывалась эта произвольная сконструированная форма.
Ответ Для этого нужно указать ссылку на эту форму в свойстве Форма выбора реквизита документа «Оказание услуг» (а не указывать в каждой форме для каждого поля «Мастер» отдельно). Путь: Конфигурация — Документы — двойной щелчок на документе «ОказаниеУслуг» — Данные — Реквизиты — двойной щелчок на реквизите Мастер — свойство «Форма выбора» в разделе «Представление» открывшихся свойств.

Вопрос Где размещать проверку заполнения реквизита объекта.
Ответ Чтобы проверка заполнения выполнялась во всех формах, где используется этот реквизит, реализовывается это следующим образом.
Интерактивная проверка. Путь: Конфигурация — Документы — двойной щелчок на документе «ОказаниеУслуг» — Данные — Реквизиты (или Табличные части — нужный реквизит) — двойной щелчок на реквизите — свойство «Проверка заполнения» в разделе «Представление» открывшихся свойств = «Выдавать ошибку».
Программная проверка. В модуле объекта нужно разместить обработчик с предопределенным именем ОбработкаПроверкиЗаполнения() (он по умолчанию запускается автоматически при записи формы) примерно такого вида:

Вопрос О способах вызова экспортных процедур, описанных в модулях объектов.
Ответ Один из интересных способов — обращение к процедуре через точку после определения объекта. Пример. В модуле объекта справочника клиентов есть процедура «Проверка() Экспорт». Обратиться к ней можно, например, так: Справочники.Клиенты.НайтиПокоду(Код).ПолучитьОбъект().Проверка()

Вопрос Примеры программного кода обработки констант. Как изменить несколько констант подряд. Как вывести значения всех констант, существующих в конфигурации.
Ответ

При этом особенности внутренней реализации объекта КонстантыНабор таковы, что при записи набора констант будут вызваны для каждой константы, входящей в записываемый набор, обработчики событий: ОбработкаПроверкиЗаполнения(), ПередЗаписью() и ПриЗаписи() модуля менеджера значения константы (если они там определены).
===

===

===

===

===

Вопрос Примеры программного кода работы со справочниками (аналогично с планами видов характеристик, с планами счетов, с планами видов расчета и с планами обмена).
Ответ

Вопрос Последовательность событий при записи элемента справочника из формы элемента (записать и закрыть), а также при записи вида характеристики из формы элемента (записать и закрыть), при записи счета из формы счета (записать и закрыть), при записи вида расчета из формы вида расчета (записать и закрыть).
Ответ МОДУЛЬ ФОРМЫ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Перед записью»- (запись)- «При записи»- МОДУЛЬ ФОРМЫ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ КЛИЕНТ: «После записи» — «Перед закрытием» — «При закрытии».

Вопрос Последовательность событий при записи узла плана обмена из формы узла (записать и закрыть).
Ответ МОДУЛЬ ФОРМЫ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Перед записью»- (запись узла плана обмена в базу данных)- «При записи»- МОДУЛЬ ФОРМЫ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ КЛИЕНТ: «После записи» — «Перед закрытием» — «При закрытии».

Вопрос Примеры программного кода обработки документов.
Ответ

Вопрос Последовательность событий при записи документа из формы документа.
Ответ МОДУЛЬ ФОРМЫ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Перед записью»- (запись)- «При записи»- МОДУЛЬ ФОРМЫ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ КЛИЕНТ: «После записи».

Вопрос Последовательность событий при проведении документа из формы документа (провести и закрыть).
Ответ МОДУЛЬ ФОРМЫ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Перед записью»- (запись)- «При записи» — «Обработка проведения»- МОДУЛЬ ФОРМЫ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ КЛИЕНТ: «После записи» — «Перед закрытием» — «При закрытии».

Вопрос Последовательность событий при отмене проведения документа из формы документа (провести и закрыть).
Ответ МОДУЛЬ ФОРМЫ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ ОБЪЕКТА СЕРВЕР: «Перед записью»- «Обработка удаления проведения» — (запись)- «При записи»- МОДУЛЬ ФОРМЫ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ КЛИЕНТ: «После записи».

Вопрос Примеры программного кода работы с перечислениями.
Ответ

Вопрос Примеры программного кода работы с регистрами сведений.
Ответ

 

Вопрос Последовательность событий при сохранении данных из формы записи регистра сведений (записать и закрыть).
Ответ МОДУЛЬ ФОРМЫ ЗАПИСИ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ ЗАПИСИ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ ЗАПИСИ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Перед записью»- (запись набора записей в базу данных (количество=0)) — «При записи» — «ПередЗаписью» — (запись набора записей в базу данных (количество=1)) — «При записи» — МОДУЛЬ ФОРМЫ ЗАПИСИ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ ЗАПИСИ КЛИЕНТ: «После записи» — «Перед закрытием» — «При закрытии».

Особенность внутренней реализации объекта РегистрСведенийМенеджерЗаписи.<имя> таковы, что в случае сохранения существующей записи регистра сведений обработчики события ПередЗаписью() и ПриЗаписи() модуля набора записей будут вызваны дважды: сначала для старого набора записей (с количеством записей 0) и затем для нового (с количеством записей 1).

Вопрос Последовательность событий при сохранении данных из формы набора записей регистра сведений (записать и закрыть), а также при сохранении набора записей регистра накопления из формы набора записей, при сохранении набора записей регистра бухгалтерии из формы и при сохранении набора записей регистра расчета из формы.
Ответ МОДУЛЬ ФОРМЫ НАБОРА ЗАПИСЕЙ КЛИЕНТ: «Перед записью» — МОДУЛЬ ФОРМЫ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Обработка проверки заполнения на сервере» — МОДУЛЬ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Обработка проверки заполнения» — МОДУЛЬ ФОРМЫ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Перед записью на сервере» — (Начало транзакции записи — МОДУЛЬ НАБОРА ЗАПИСЕЙ СЕРВЕР: «Перед записью»- (запись набора записей в базу данных) — «При записи» — МОДУЛЬ ФОРМЫ НАБОРА ЗАПИСЕЙ СЕРВЕР: «При записи на сервере» — Конец транзакции записи) — «После записи на сервере» — МОДУЛЬ ФОРМЫ НАБОРА ЗАПИСЕЙ КЛИЕНТ: «После записи» — «Перед закрытием» — «При закрытии».

Вопрос Примеры программного кода работы с регистрами накопления, регистрами бухгалтерии и регистрами расчета.
Ответ

Вопрос О проведении документов и видах блокировок в модуле проведения.
Ответ При проведении документов обычно нужно выполнить какие-то движения.
ВАРИАНТ 1. Если сначала выполняется запись движений, а потом их чтение (для контроля и отказа от проведения, если неудачно), то блокировка устанавливается командой типа:

ВАРИАНТ 2. Однако, бывают случаи, когда сначала нужно выполнить чтение, а уже потом запись.
В этом случае блокировка выполяняется методом «БлокировкаДанных», примерно так:

Снимется эта блокировка автоматически, в момент окончания проведения.
Общая схема проведения выглядит так:
//**********************************************************************************************
// сообщаем, какие движения записать в конце проведения
//**********************************************************************************************
// Установим необходимость блокировки данных в затрагиваемых регистрах
//**********************************************************************************************
// Запишем пустые наборы записей чтобы читать остатки без учета данных в документе
//**********************************************************************************************
// Выполнение запроса к базе данных для получения параметров новых движений
//**********************************************************************************************
// Движения
//**********************************************************************************************
// отказываемся от записи движений и проведения, если возникли ошибки

Пример модуля проведения по этой схеме:

Вопрос О получении данных из регистра остатков номенклатуры с помощью зароса и параметрах виртуальных таблиц.
Ответ При построении запроса к регистру накопления «ОстаткиНоменклатуры» в параметры виртуальной таблицы нужно передавать не дату документа, а гораздо более точный параметр, определяющий позицию докуента на оси времени — МоментВремени():

Вопрос В табличной части документа есть реквизит сумма. Требуется вывести итог в шапку документа. Как это лучше сделать?
Ответ Подсчет итога по графе «Сумма» и заполнение реквизита шапки этим результатом лучше сделать в МодулеДокумента в процедуре-событии «Перед записью»:

Вопрос Как в запросе осуществить выборку остатков и оборотов регистра накопления за заданный период, включая последнюю секунду, когда период задан параметрами виртуальной таблицы.
Ответ Особенность виртуальной таблицы регистра накопления такова, что когда конец выборки задается значением вида 12.13.2011 23:59:59 (т.е. конец дня), то последняя секунда дня не попадает в выборку. А если указать 12.13.2011 23:59:59 + 1 (т.е. добавить секунду), то в выборку попадут данные следующего дня, что тоже не правильно. Чтобы этого не происходило, дату окончания нужно задавать, используя метод «Граница». Пример:

Вопрос На какие данные можно опираться при проведении документов и на какие нельзя? В частности, в каком случае можно опираться на валюту, указанную в реквизите справочника договоров контрагента при проведении документа.
Ответ При проведении документа нужно следить за тем, чтобы выполняемые им движения были стабильно воспроизводимыми. Нельзя допускать ситуации, когда документ при проведении определяет, например, валюту как рубль, затем пользователь изменяет в договоре с контрагентом валюту на другую, и при повторном проведении документа валюта определяется в движениях уже как другая.
Документ в своих движениях может опираться на:

  • свои реквизиты;
  • значения данных, сконфигурированные таким образом, что они не могут быть потом независимо от этого документа изменены на другие;
  • данные регистров, записи которых подчинены регистраторам.

Допустим, в документе есть реквизит «Договор». Для выполнения движений, предположим, требуется узнать валюту договора, т.е. валюта – это реквизит договора с контрагентом. И пусть договор – это элемент справочника «Договоры», подчиненного справочнику «Контрагенты». В таком случае при проведении документа мы можем использовать валюту из договора только в том случае, если конфигурированием мы добились того, что пользователь после записи в базу данных нового договора уже не может поменять в нем валюту. Такой запрет на изменение лучше всего разместить в предопределенной процедуре-событии модуля объекта справочника договоров «ПередЗаписью» (тогда при любом из возможных вариантов модификации этого справочника будет осуществляться соответствующая проверка):

Продолжение следует…

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,50 из 5)
Загрузка...

Автор 1С

19 thoughts on “Шпаргалка по программированию для системы 1С:Предприятие v8

  1. Спасибо, у Вас в строке ФораСписка = ПолучитьФорму(«Справочник.Клиенты.ФормаСписка»);
    нужно
    ФормаСписка = ПолучитьФорму(«Справочник.Клиенты.ФормаСписка»);

  2. Подскажите пож. в какой последовательности внести закупочную цену (в евро) и как сформировать продажную цену,как внести % наценки?? Как вписать номер ГТД?
    Как менять курс рубля к евро?
    Спасибо

  3. Помогите,пожалуйста.перехожу с 1с7 на 1C8.2 УПП .
    1.При добавлении 4 субконто у счета,в форме списка появляется только пустая колонка -не видно ее содержание
    2.В какой общий модуль нужно внести изменения,чтобы заполнить хотя-бы 3-е субконто у 62 счета при проведении Приходного Ордера (в модуле объекта в обрботкеПроведения не могу найти),может не там ищу?

  4. СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

    {Справочник.Магазины.Форма.ФормаЭлемента.Форма(3,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <>Элементы.Продукты.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение))
    {Справочник.Магазины.Форма.ФормаЭлемента.Форма(8,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <>Элементы.Материалы.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение))
    {Справочник.Магазины.Форма.ФормаЭлемента.Форма(3,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <>Элементы.Продукты.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение))
    {Справочник.Магазины.Форма.ФормаЭлемента.Форма(8,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <>Элементы.Продукты.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение))

  5. Отлично !!! Очень помогло !!!
    Нашел что искал!!! В частности по заполнению табличной части документа программно !!!

  6. как задать определенные значения для реквизита табличной части справочника. Хотелось бы видеть выпадающий список

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

Как в схеме компоновки данных передать "конец дня" в параметры виртуальной таблицы (1С: Схема компоновки данных)

Пт Дек 23 , 2011
Предположим в конструкторе запроса Схемы компоновки данных имеется запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрНакопления.ЗамещенныеШтатныеЕдиницыОрганизаций.Остатки(&Период, ) КАК ЗамещенныеШтатныеЕдиницыОрганизацийОстатки Задача. Предположим, что значение параметра &Период может быть передано любым, а нам требуется осуществить получение данных на конец указанного дня. Решение. Напрямую в параметрах виртуальной таблицы применить конструкцию запроса вида КОНЕЦПЕИОДА(&НужнаяДата,ДЕНЬ) мы не […]