Чтобы задействовать сохранение настроек в версии 8.0, необходимо в палитре свойств формы установить значения свойств "Сохранять значения" и "Сохраняемые значения". В командной панели формы можно использовать стандартные кнопки сохранения и восстановления настроек.

Следует иметь в виду, что сохранение настроек возможно, только если в качестве основного объекта формы выбраны значения типа ОтчетОбъект.<имя> или ОбработкаОбъект.<имя>, поскольку эту функциональность обеспечивают соответствующие расширения формы.

Более подробно о том, что такое расширения формы, можно прочитать в разделе «Данные и элементы управления» на странице 502.

Есть ли в 1С:Предприятии 8.0 аналог метода АктивизироватьОбъект(), чтобы активизировать нужную строку табличного поля?

В версии 8.0 активизация строки табличного поля выполняется установкой свойства ТекущаяСтрока соответствующего элемента управления. Этому свойству нужно присвоить значение, которое будет идентифицировать нужную строку. Тип этого значения зависит от типа данных, с которыми связано табличное поле.

К примеру, если речь идет о списке справочника, то это будет ссылка на элемент справочника.

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

Как правило, для установки текущей строки в некоторой форме
списка из другой формы, нужно использовать свойство формы
НачальноеЗначениеВыбора, а также свойства

ПараметрТекущаяСтрока соответствующих расширений форм списков.

НЕ нашли? Не то? Что вы ищете?

Более подробно о том, что такое расширения формы, можно прочитать в разделе «Данные и элементы управления» на странице 502.

Никак не могу заставить работать элемент управления Переключатель! В чем дело?

В версии 8.0 работа с переключателем ведется таким же образом, как и в версии 7.7, за исключением одного отличия.

Теперь для каждого переключателя в группе можно задать значение, которое будет помещаться в данные при выборе этого переключателя. Это значение задается в свойстве ВыбираемоеЗначение. По умолчанию выбираемое значение имеет тип Число и значение равное нулю. Таким образом, если при создании переключателя не определить его выбираемое значение, то в данные всегда будет помещаться нулевое значение.

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

Примеры использования переключателя можно посмотреть в разделах «Изменение источника данных табличного поля» на странице 516, и «Изменение данных табличного поля путем установки типа значения» на странице 520.

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

По умолчанию, у панелей форм в 1С:Предприятии 8.0 установлен режим автоматического определения порядка обхода. В этом режиме настроить порядок обхода вручную нельзя.

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

Также нужно помнить, что порядок обхода задается не для всей формы целиком, а для каждой панели, расположенной в форме, поэтому и свойство «Автопорядок обхода» нужно регулировать для каждой панели отдельно.

620

621

гкий справочник разработчика

Вопросы при переходе с версии 7.7

Как в иерархическом списке программно установить отбор по конкретному родителю?

Так как табличное поле поддерживает стандартную механику работы с иерархическими списками, то поле «Родитель» не используется в стандартной механике отборов, а управляется специальным способом. Свойство ТекущийРодитель табличного поля позволяет получить и установить текущего родителя, а свойство ИзменятьТекущегоРодителя позволяет запретить пользователю переход по родителям.

Как работать с элементом управления ПолеВыбора?

В 1С:Предприятии 8.0 значением поля выбора является собственно само выбираемое значение, а не список выбора.

Список выбора, соответствующий полю выбора, задается в свойстве СписокВыбора элемента управления.

Заполнять список выбора рекомендуется в теле модуля, а не в обработчиках событий «Перед открытием» и «При открытии».

Это связано с тем, что значение, устанавливаемое для поля выбора, сохраняется, если оно найдено в списке выбора этого поля. Если же устанавливаемое значение не найдено в списке выбора - сохраняется значение Неопределено.

Таким образом, поскольку установка значения поля выбора в открываемой форме производится в процессе создания формы (до вызова событий «Перед открытием» и «При открытии») - список выбора поля выбора должен быть заполнен в теле модуля формы.

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

Например:

ЭлементыФормы. ПолеВыбора 1 .СписокВыбора. Добавить( 1,"Один"); ЭлементыФормы. ПолеВыбора 1 .СписокВыбора. Добавить( 2,"Два"); ЭлементыФормы. ПолеВыбора 1 .СписокВыбора. Добавить( 3,"Три");

После этого, используя значение реквизита формы, связанного с полем выбора, можно устанавливать текущее и получать выбранное значение в поле выбора.

Пример работы с полем выбора можно посмотреть в модуле формы отчета «РейтингКлиентов» в разделе «Создание отчета РейтингКлиентов» настранице 198.

Не могу найти аналог «семерочного» Активизировать(<имя реквизита>). Нужно периодически программно активизировать элемент формы.

Для указания текущего активного элемента управления, расположенного в форме, следует использовать свойство объекта Форма - ТекущийЭлемент.

Справочник

Есть ли в версии 8.0 аналог методу формы справочника ИспользоватьСписокЭлементов()?

Нет.

Для того чтобы отобразить в списке специально отобранный перечень объектов, следует использовать выборку данных запросом и отображение их в форме в таблице значений или табличном документе. При этом система 1С:Предприятие 8.0 будет обеспечивать полноценное взаимодействие других системных механизмов с такими формами.

При использовании динамических списков документов, справочников и т. д., также можно программно установить отбор по полю Ссылка, и указать, что в качестве вида сравнения будет использовано вхождение в список значений. Такой прием тоже позволяет отображать в списке только определенные объекты. Однако такой способ может иметь только ограниченное применение, потому что динамический список обладает большим количеством универсальных возможностей (установка отбора пользователем, переходы по уровням в иерархических списках и т. д.), и сложно совместить в прикладных решениях эти механизмы с отбором по конкретным значениям ссылок.

623

раткий справочник разработчика

Вопросы при переходе с версии

Говорят, что в версии 8.0 нет периодических реквизитов справочников. А как же теперь хранить историю изменения их значений?

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

Регистр сведений можно сделать периодическим, и тогда он будет хранить историю изменения этих значений, с заданной точностью (имеется возможность задать различную периодичность регистра сведений - месяц, день, позиция документа и пр.).

В качестве примера можно посмотреть периодический регистр сведений «Цены», хранящий историю изменения цен номенклатуры, в главе «Периодический регистр сведений» на странице 118.

Более подробную информацию можно найти на диске ИТС в статье "Периодические регистры сведений".

Написал процедуру ПриОткрытии() в модуле формы, но она не вызывается, когда я открываю форму. В чем дело?

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

Для упрощения работы, в версии 8.0 можно создавать шаблоны обработчиков событий формы. Для этого следует выбрать нужное событие в палитре свойств и нажать на символ лупы в конце поля ввода. Система создаст объявление процедуры в модуле формы и свяжет ее с выбранным событием.

Подробнее можно прочитать об этом в главе «Обработчики событий» на странице 546, и на диске ИТС в статье "Процедуры - обработчики событий".

У меня не получается программно изменить элемент справочника. Почему?

По всей видимости, вы пытаетесь изменять элемент справочника, используя объект СправочникСсылка^имя>. Объекты этого типа позволяют обращаться к реквизитам и табличным частям справочника в режиме "только чтение".

Для того чтобы изменить данные элемента справочника следует получить объект СправочникОбъект.<имя>, который позволяет как читать, так и записывать данные. Это возможно с помощью метода ПолучитьОбъект().

Более подробную информацию можно найти в главах «Виды объектов встроенного языка, предназначенные для работы с данными прикладных объектов конфигурации» на странице 551, «Манипулирование данными объектов» на странице 561, а также в статьях на диске ИТС: "Работа с прикладными объектами средствами встроенного языка" и "Типы значений, связанные с прикладными объектами".

У прикладных объектов нет методов ПолучитьАтрибут() и УстановитьАтрибут(). Как теперь обращаться к атрибутам объектов, если имя атрибута формируется в процессе вычислений?

Встроенный язык версии 8.0 поддерживает универсальную возможность обращения к свойствам объектов, используя конструкцию [<имя свойства>], где <имя свойства> - строка или строковая переменная, содержащая имя требуемого свойства:

ИмяСвойства = "Наименование";

Объект[ИмяСвойства] = Объект[ИмяСвойства] + " Новый"

В 7.7 были методы ТекущийДокумент() и ТекущийЭлемент() для получения позиционированного элемента справочника или документа. А как теперь это сделать в 8.0?

В версии 8.0 была введена унифицированная объектная структура данных. Теперь значение ссылки на объект базы данных хранится в поле Ссылка, и во всех случаях (при использовании объекта, выборки,

624

625

!раткий справочник разработчика

Вопросы при переходе с версии 7.7

запроса и т. д.) значение ссылки на объект можно получить по имени этого поля:

Выборка = Справочники. Склады. Выбрать(); Пока Выборка. Следующий() Цикл

Склад = Выборка. Ссылка; КонецЦикла;

Перечисление

Как получить имя значения перечисления, которое задано в

метаданных?

Чтобы определить имя значения перечисления, которое задано в метаданных, можно поступить следующим образом.

Допустим, у нас есть значение типа

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

Затем, зная имя перечисления и конкретное значение перечисления, нужно получить индекс этого значения.

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

Следующий пример иллюстрирует описанную методику:

ЗначениеПеречисления = Перечисления. ВидыКонтрагентов. Организация; ИмяПеречисления = ЗначениеПеречисления. Метаданные().Имя; ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].

Индекс(ЗначениеПеречисления); ИмяЗначенияПеречисления = Метаданные.

Перечисления [ИмяПеречисления].

ЗначенияПеречисления[ИндексЗначенияПеречисления].

Имя;

Документ

В версии 7.7 была предопределенная процедура ВводНового(). Что-то не могу найти ее в версии 8.0...

Теперь факт интерактивного ввода нового объекта (элемента справочника, документа и т. д.) не выделяется в отдельное событие.

В версии 8.0 для анализа аналогичного факта следует использовать событие объекта Форма - «При открытии». Для того чтобы в обработчике этого события проанализировать, выполняется ли ввод нового объекта, или открыт уже существующий, нужно вызвать метод прикладного объекта ЭтоНовый(). Метод вернет значение Истина, если вводится новый объект, и Ложь - в противном случае.

В качестве примера можно посмотреть процедуру «СвойстваПередНачаломДобавления» формы элемента справочника «ВариантыНоменклатуры» в разделе «Доработка справочника ВариантыНоменклатуры» на странице 269, или обработчик события «Перед записью» формы узла плана обмена «Филиалы» в разделе «Создание плана обмена Филиалы» на странице 403.

Более подробную информацию можно найти на диске ИТС в статье "Процедуры - обработчики событий".

метода

для

Есть ли какой-нибудь аналог

ПриЗаписиПерепроводить() в версии 8.0?

Есть.

Режим перепроведения при записи проведенного документа устанавливается с помощью свойства ПриЗаписиПерепроводить, которое существует у расширения формы документа. Если это свойство установить, то при вызове стандартных команд записи в форме, запись проведенного документа будет автоматически выполняться с проведением.

Более подробно о том, что такое расширения формы, можно прочитать в разделе «Данные и элементы управления» на странице 502.

626

627

раткий справочник разработчика

Вопросы при переходе с версии 7.7

Как сохранить документ без проведения (в 7.7 можно было написать в кнопке #Записать Закрыть)?

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

В обработчике события нажатия следует вызвать метод объекта документ Записать(), с первым параметром, равным РежимЗаписиДокумента. Запись. После этого нужно закрыть форму:

Процедура ЗаписатьБезПроведенияИЗакрыть(Кнопка) Записать(РежимЗаписиДокумента. Запись); Закрыть();

КонецПроцедуры___________________________

Как перебрать строки табличной части документа?

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

Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

ОчереднаяСтрока = ТекСтрокаМатериалы;
КонецЦикла;

При этом переменной цикла «ТекСтрокаМатериалы» будет являться не номер строки, а вся строка как объект. Для получения номера строки следует использовать свойство НомерСтроки или добавить переменную и увеличивать ее в теле цикла.

Для обхода табличной части можно использовать и обычный цикл Для ... По ... Цикл ... КонецЦикла, но необходимо помнить, что индекс первого элемента коллекции всегда равен нулю:

Для СчетчикЦикла = 0 По Материалы. Количество() - 1 Цикл

ОчереднаяСтрока = Материалы[СчетчикЦикла]; КонецЦикла;

В качестве примера можно посмотреть главу «

Способы работы с коллекцией» на странице 550, или обработчик

события «ОбработкаПроведения» в модуле документа

«ПриходнаяНакладная» в разделе «Создание движений документа

ПриходнаяНакладная» на странице 89.

Есть ли в версии 8.0 подчиненные документы?

Нет, специального понятия "Подчиненные документы" в версии 8.0 не существует.

В версии 8.0 одни объекты (документы, элементы справочников, задачи и т. д.) могут являться основанием, для создания других объектов. Таким образом, документ может быть создан не только на основании другого документа, но и на основании, например, элемента справочника или бизнес-процесса.

Поэтому теперь, для получения документов, имеющих ссылки на некоторый документ, рекомендуется использовать объект Критерий отбора. Использование критерия отбора предоставляет больше возможностей, чем механизм подчиненных документов. Критерий отбора позволяет отбирать не только документы, но и другие объекты базы данных. Кроме того, он позволяет непосредственно указать перечень реквизитов, по значению которых необходимо выполнять отбор.

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

Однако следует учитывать, что критерий отбора не позволяет выполнять динамический просмотр найденных данных. В список будут включаться все найденные объекты. Соответственно, нецелесообразно использовать этот механизм, если количество

629

шожения

Вопросы при переходе с версии 7.7

найденных объектов по значениям критерия отбора будет достаточно велико.

Примеры работы с зависимыми объектами можно посмотреть в разделах «Ввод на основании» на странице 493 и «Объекты, введенные на основании» на странице 497.

Как добавить строку в табличную часть документа?

Табличная часть документа представляет собой коллекцию значений, элементами которой являются строки табличной части.

В версии 8.0 существуют общие принципы работы с коллекциями значений. Чтобы добавить элемент в коллекцию (в данном случае строку в табличную часть документа), нужно вызвать у коллекции метод Добавить(). Метод возвращает объект - добавленный элемент коллекции. В случае с табличной частью это будет строка табличной части:

СтрокаСостава = ДокументОбъект. Состав. Добавить(); СтпокаСостава. Количество = 10;

Не могу найти метод Провести() у документа...?

В версии 8.0 у документа нет метода Провести().

Это связано с тем, что проведение документа не выделяется теперь в отдельное действие. В версии 8.0 проведение рассматривается как один из режимов записи документа.

Таким образом, теперь документ может быть либо просто записан, либо записан с проведением, либо с отменой проведения. Режим записи документа задается параметром его метода Записать():

ДокументОбъект. Записать(РежимЗаписиДокумента. Проведение);

Как теперь обрабатывать во встроенном языке ввод на основании

и копирование?

В версии 8.0 при вызове стандартной команды ввода на основании выполняется создание нового объекта и вызов в модуле этого объекта обработчика события «Обработка заполнения».

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

Надо помнить, что событие «Обработка заполнения» возникает не только при вводе на основании. Это событие будет возникать и при вызове метода объекта Заполнить().

Таким образом, обработчик события «Обработка заполнения» является стандартным местом, в котором реализуется заполнение данных объекта из данных объекта основания без учета того, откуда и зачем вызывается это заполнение.

Поэтому обратите внимание на то, что в этом обработчике следует выполнять только заполнение данных, и не следует делать каких-либо дополнительных действий связанных с интерфейсом системы.

Аналогичным образом выполняется копирование. При копировании вызывается обработчик события объекта «При копировании», в котором можно дополнить стандартное заполнение данных выполняемое системой при копировании объекта. Этот обработчик вызывается, как при интерактивном копировании, так и при вызове метода Скопировать().

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

Примеры обработки ввода одних объектов на основании других можно посмотреть в разделах «Ввод на основании» на странице 493 и «Объекты, введенные на основании» на странице 497.

Как прочитать движения документа по определенному регистру?

Существует два способа, которыми можно это сделать.

Во-первых, можно «пойти от документа». Для этого следует воспользоваться свойством объекта ДокументОбъект.<имя> -Движения. Это свойство содержит коллекцию пустых наборов записей документа по каждому из регистров, которые указаны для

630

631

Приложения

этого документа в конфигураторе. Чтобы получить движения документа по конкретному регистру, нужно обратиться к набору записей этого конкретного регистра (указав имя регистра в качестве свойства через точку), и затем прочитать этот набор записей:

ДокументОбъект = Документы. ПриходнаяНакладная.

НайтиПоНомеру(1).ПолучитьОбъект;

Движения = ДокументОбъект. Движения. ОстаткиМатериалов; Движения. Прочитать();

Во-вторых, можно «пойти от регистра». Для этого следует создать набор записей требуемого регистра, установить для него отбор по регистратору, равному ссылке на интересующий нас документ, и затем прочитать этот набор записей:

Движения = РегистрыНакопления. ОстаткиМатериалов. СоздатьНаборЗаписей(); Движения. Отбор. Регистратор. Значение = Документы. ПриходнаяНакладная.

НайтиПоНомеру( 1);

Движения. Прочитать();

В 7.7 были общие реквизиты. В версии 8.0 их нет?

Да. Было принято решение в версии 8.0 отказаться от общих реквизитов документов. Вместе с этим в версии 8.0 нет и общего журнала документов.

Теперь, если у всех документов нужно иметь аналогичные реквизиты, например, «Автор» и «Редактор», эти реквизиты следует создать вручную у каждого документа.

При необходимости использовать аналог общего журнала версии 7.7, следует просто создать журнал документов, в котором будут регистрироваться все существующие документы.

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

Список значений

Раньше (в 7.7) можно было сделать выбор из списка значений в виде маленького списка или меню, которое подстраивалось по элементу управления формы... А как то же самое сделать в 8.0?

В версии 8.0 для реализации такой возможности следует использовать методы формы (а не списка значений, как это было в 7.7): ВыбратьИзСписка() и ВыбратьИзМеню().

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

Пример вызова: Выбор = ВыбратьИзСпиека(СписокЗначений, ЭлементФормы, НачальноеЗначение);

Таблица (табличный документ)

В 7.7 была процедура НоваяСтраница(). А что в 8.0?

Для того, чтобы в версии 8.0 вставить в табличный документ разделитель страниц, следует использовать метод объекта ТабличныйДокумент

ВывестиГоризонтальныйРазделительСтраниц().

Следует заметить, что также появилась возможность вставлять в табличный документ и вертикальные разделители страниц (метод ВывестиВертикальныйРазделительСтраниц()).

Как сохранить табличный документ в формате Excel? У меня ничего не получается...

В версии 8.0 для сохранения табличного документа в формате, отличающемся от его исходного формата, следует использовать пункт меню Файл | Сохранить копию...

Команда меню Файл | Сохранить как... позволяет сохранять табличный документ только в «родном» формате.

Приложения

Вопросы при переходе с версии 7.7

Запрос

В запросах версии 7.7 была опция «все вошедшие в запрос». Как сделать то же самое в 8.0?

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

В версии 8.0 для решения такой задачи следует использовать параметр «Группировки для значений группировок» методов Выбрать() результата запроса и выборки из результата запроса. Если в качестве этого параметра указать "Все", то будут выбраны все значения этой группировки в запросе. Если же указать конкретную вышестоящую группировку, то будут выбраны все значения группировки для текущих значений указанных вышестоящих группировок.

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

Наряду с описанным выше параметром, для группировок типа Дата существует возможность указать в тексте запроса способ дополнения результата запроса значениями группировки в указанном интервале с заданной периодичностью. Для этого в описании формирования итогов используется ключевое слово ПЕРИОДАМИ.

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

В качестве примера можно посмотреть отчет «Выручка мастеров» в разделе «Отчет ВыручкаМастеров» на странице 183.

Версия 8.0 Общие вопросы

Я указываю период (дату начала, дату окончания), но последний день в него не попадает. Почему?

Дело в том, что в версии 8.0 значения типа Дата включают в себя время с точностью до секунд. По умолчанию, если время в явном виде не задается, оно устанавливается равным 00:00:00. Поэтому, если нужно указать период по какую-то дату включительно, следует указывать конец суток, т. е. определенную дату со временем 23:59:59, либо использовать функцию КонецДня(), если время в явном виде не задается.

В качестве примера можно посмотреть процедуру «ДействияФормыРейтингУслугСформировать» в модуле формы отчета «РейтингУслуг» в разделе «Отчет Рейтинг услуг» на странице 173.

Преобразую число из 4 цифр в строку и получаю количество символов в строке - 5. Это почему так?

Дело в том, что в версии 8.0 получение строкового представления числа выполняется на основе региональных настроек, установленных на компьютере.

В случае, когда установлены стандартные региональные настройки для России, при приведении числа к строке между группами разрядов чисел вставляется неразрывный пробел (Символы. НПП), например:

Год = 2004;

СтроковоеПредставление = Строка(Год);

// СтроковоеПредставление = "2 004"

// длина строки - 5 символов, включая неразрывный пробел

635

Приложения

Вопросы при переходе с версии 7.7

Чтобы преобразовать число к строке без вставки символа-разделителя групп (неразрывного пробела), нужно использовать функцию Формат() с параметром «ЧГ» равным нулю:

Год = 2004;

СтроковоеПредставление = Формат(Год,"ЧГ = 0");

// СтроковоеПредставление = "2004"

// длина строки - 4 символа

Чтобы изменить преобразование чисел к строке по умолчанию,
нужно для информационной базы установить региональные настройки
(например, параметр «Группировка» установить в ноль). Для этого
следует воспользоваться командой меню

Администрирование | Региональные настройки ИБ...

Если стоит задача получения строкового представления текущего года, можно воспользоваться встроенной функцией формат, указав в ее параметре соответствующую форматную строку:

Формат(ТекущаяДата(), "ДФ = птг") :|

Более подробную информацию можно найти на диске ИТС в статье "Особенности форматирования значений".

Допускает ли версия 8.0 два сеанса работы для одного пользователя одновременно?

Да, в версии 8.0 одновременно может быть запущено два и более сеансов работы с одним пользователем системы. Наличие такой возможности весьма полезно. Например, пользователь, может запустить выполнение длительной операции в одном сеансе и, запустив второй сеанс, продолжать работать с системой.

Что будет результатом вычитания двух значений типа Дата?

В версии 8.0 значение типа Дата содержит как дату, так и время с точностью до секунды. Поэтому результатом вычитания двух значений типа Дата будет число - разница в секундах.

Для получения следующей даты нужно прибавить к дате количество секунд в дате.

У меня есть реквизит составного типа, включающий ссылки на два справочника. Когда я пытаюсь получить через точку наименование справочника, система выдает ошибку. Почему?

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29