arefaste/1C_Forums huggingface dataset:
Здравствуйте.
Конфа ЗУП. Есть профиль групп доступа, допустим, табельщик. Есть пользователь с этим типовым профилем.
Можно ли не меняя прав (права / роли устраивают) просто изменить сам интерфейс.
Например, не надо вообще, чтобы выходил блок "Кадры" к-й является подсистемой включенной в командный интерфейс.

Вопрос: можно изменить видимость пунктов меню не меняя ролей при этом и не "руками" через настройку панели разделов, а программно?
---
Думаю, что только руками такое можно, либо настроить панели разделов, либо поправить права в конфигураторе. По другому не знаю.
---
не уверен, но а программно если только через расширения. Зачем только, один раз у пользователя скрыл разделы и все.
---
Например, не надо вообще, чтобы выходил блок "Кадры" к-й является подсистемой включенной в командный интерфейс.
Через расширения лучше всего. Тк иначе только через конфигуратор или через настройку разделов.
---
Думаю, что только руками такое можно, либо настроить панели разделов, либо поправить права в конфигураторе. По другому не знаю.
---
, (3), (4) Спасибо.
Если руками через настройку разделов скрыл разделы - тогда, теоретически, они же смогут все вернуть назад?
Также через настройку разделов.

А как поправить права в конфигураторе или через расширения?
Что именно там править?
Создавать необходимые роли?
---
а вы сам то какое к ним отношение имеете? если там работаете - обратитесь к специалисту, если ваш клиент - обратитесь к специалисту...

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

Здесь нужно комплексно подходить к решению. А это не бесплатно...
---
У табельщика нет прав на открытие обработок.
Тут сами права настроены корректно (типовые от 1С)
Просто думал можно как-то легко скрыть нужные разделы программно.
но, в принципе, то, что они их видят - никакой проблемы особой нет, так настроены типовые права от 1С.

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

Помогите сравнить значение из виртуальной таблицы с 0
---
я указал как исправить ошибку, которая возникает при сравнении данных разных типов.
Ошибка вероятнее всего возникает из-за того, что вы сравниваете 0 (число) с NULL (не число).

Замените в запросе строку
| СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот
на
| ЕстьNull(СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот,0) Как АмортизацияОборот

Это заменит NULL в результатах запроса на 0, и обработка скорее всего перестанет сыпаться на строке модуля 1819.
---
В запросе берется поле "СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот"

В таблице на печати выводятся числовые значения,

 а при сравнении выходит ошибка:

{ВнешняяОбработка.УчетДрагМеталловОС.МодульОбъекта(1819)}:
Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов
(Булево, Число, Строка, Дата)
---
У вас не в виртуальной таблице проблема - у вас значение отсутствует. Вот в (4) одно из решений данной проблемы.
---
Покажите строку на которую идет ошибка.
---
Для Каждого ос Из запрос1 Цикл
Если ОС.Амортизация = 0 И ОС.КолЗолото <> 0 ИЛИ ОС.КолСеребро <> 0 ИЛИ ОС.КолПлатина<> 0 ИЛИ ОС.КолДругой1Металл <> 0 ИЛИ ОС.КолДругой2Металл <> 0 ИЛИ ОС.КолДругой3Металл <> 0 ИЛИ ОС.КолДругой4Металл <> 0 ИЛИ ОС.КолДругой5Металл <> 0 ИЛИ ОС.КолДругой6Металл <> 0 ИЛИ ОС.КолДругой7Металл <> 0 ИЛИ ОС.КолДругой8Металл <> 0 ИЛИ ОС.КолДругой9Металл <> 0 Тогда //если ЭтоДМ(ос.Комментарий) тогда
---
все эти поля "Амортизация", "КолЗолото", "КолСеребро" и прочие должны быть ЧИСЛОВЫМИ. Если где-то проскакивает NULL - будет ошибка.
Либо не используйте левые соединения в запросе, либо используйте конструкцию типа "ЕстьNull(%поле%, 0) как %ИмяПоля%" для всех этих полей.
---
| ЕстьNull(СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот,0) Как АмортизацияОборот
---
мне надо не само значение, а если амортизация нулевая не брать основное средство с этой амортизацией
---
мне надо не само значение а что вы тогда сравниваете в (8)?
---
значения амортизации у меня выводятся,
но они мне не нужны
---
я указал как исправить ошибку, которая возникает при сравнении данных разных типов.
Ошибка вероятнее всего возникает из-за того, что вы сравниваете 0 (число) с NULL (не число).

Замените в запросе строку
| СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот
на
| ЕстьNull(СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.АмортизацияОборот,0) Как АмортизацияОборот

Это заменит NULL в результатах запроса на 0, и обработка скорее всего перестанет сыпаться на строке модуля 1819.
Всем привет. Досталась мне база, БП 3.0.52.42 (полностью на поддержке). В чем была проблема - по совершенно непонятной причине пользователи вели нумерацию счетов-фактур в ручном режиме и кто во что горазд (то есть изначально система присваивала какой-то номер, а пользователь его потом менял или не менял, на свое усмотрение). Стандартный номер счета фактуры (в организации не используются никакие префиксы): 0000-0000001 (всего 12 символов) ну или 0000-0000584. При ручном вводе пользователи не обращают внимания ни на какие мелочи, и в результате номера счетов-фактур могут иметь следующий вид:
000-0052
0000--01458
000--0027
и т.д.
Но есть и нормальные номера.
В чем была проблема - дошли до номера 999 и номера закончились. Почему-то пользователям это не понравилось.
Написала простенькую обработку которая добавляет отсутствующие нули и вообще приводит номера в божеский вид. Теперь все номера стандартного вида, например, 0000-0000052. Последний номер в списке 0000-0001024.
Но тут возникла новая проблема. Есть счет-фактура с номером следующего вида: 0000-0253-30 (по уверениям самого главного бухгалтера этот номер менять нельзя ни в коем случае). И теперь, при записи нового документа, программа присваивает номер 0000-0253-31, а не 0000-0001025. Причем, система считает, что последний номер именно 0000-0253-30, а при сортировке формы списка счетов-фактур последним номером идет 0000-0001024.
Руками исправила номер 0000-0253-31 на 0000-0001025. Но при записи следующего документа присваивается номер 0000-0253-32. И так до бесконечности.
А вопрос, собственно, такой - можно ли как-то обмануть программу, чтобы последним номером считался именно номер 0000-0001024 а не 0000-0253-30? Если кто знает, поделитесь опытом, как такое можно сделать?
---
исправьте номер 0000-0253-30 на 0001-0253-30.
---
исправьте номер 0000-0253-30 на 0001-0253-30.
---
спасибо, этот совет мне очень помог)
---
счета-фактуры входящие (полученные) или исходящие (выданные)?
---
извиняюсь, конечно выданные.
---
а Вы кардинально номера поменяли или, например, 000--0027 на 0000-0000027?
---
да
---
ИМХО но мне кажется, что штатно никак. Она ведь префиксом считает все что левее первого правого дефиса.

А вообще, пару месяцев, пусть руками и ставят. А с нового года уже пущай не трогают нумератор
---
Системные номера могут быть любыми. Главное "представление номера" (на печати, в отчетности, в налоговой).
---
Ничего подобного, префикс - обычный символ.
---
Сделайте не 0000-0001024 а 0000-1024000 и он будет старше.
---
Всем спасибо, завтра попробую. Отпишусь по результатам.
---
Только что проверял, смотрится по старшему разряду, и не важно сколько дефисов в номере.
При настройке СКД. Хочу добавить 3 разные колонки. Все они берутся из Взаимодействия.
Поле1 - Взаимодействие
Поле2 - Взаимодействие.ДатаСледуующегоШага
Поле3 - Взаимодействие.СледующийШаг

Как сделать чтобы все они выводились в отдельных колонках. Заранее спасибо.
---
Попробуй на закладке "Другие настройки" поменять расположение реквизитов на "Отдельно"
---
Попробуй на закладке "Другие настройки" поменять расположение реквизитов на "Отдельно"
---
Вкладка "Настройки" - "Другие настройки" - "Расположение реквизитов" - "Отдельно"
---
Спасибо большое
Здравствуйте, 1С 8.2 обычный интерфейс, надо в документа в табличной части при открытии или после открытия поменять названия некоторых колонок (ТекстШапки) в табличной части. Подскажите как это сделать. Спасибо.
---
Напрямую обратиться к табличной части через элементы формы в процедуре ПриОткрытии()

```1c
    ЭлементыФормы.ТаблицаСписок.Колонки.ИмяКолонки.ТекстШапки = "Текст!"
```
---
Напрямую обратиться к табличной части через элементы формы в процедуре ПриОткрытии()

```1c
    ЭлементыФормы.ТаблицаСписок.Колонки.ИмяКолонки.ТекстШапки = "Текст!"
```
---
ЭлементыФормы.ТаблицаСписок.Колонки.ИмяКолонки.ТекстШапки = "Текст!"
Спасибо, то что надо.
---
И сделать это через расширение конфигурации, если конфигурация на поддержке.
Здравствуйте!
Помогите пожалуйста разобраться. Есть УТ11, в ней создано расширение для создания новых договоров с контрагентами. Пользователи хотят, чтобы некоторые значения на этой форме были проставлены автоматически, такие как например Ставка НДС, или Детализация расчетов. Для каждого из этих полей есть перечисления значений, но как выставить одно из них по умолчанию?
---
при открытии формы нового договора заполняйте все необходимые поля
---
Объект.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
---
при открытии формы нового договора заполняйте все необходимые поля
---
Да, но не пойму как это сделать. Делаю, например, так:
Объект.СтавкаНДС.Метаданные().ЗначенияПеречисления.Индекс(4)
 говорит "несоответствие параметра"
ну и еще перепробовала вариантов, все не то.
где тут его присвоить, значение это?
---
Объект.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
---
Спасибо всем, получилось!
Подскажите как данные из виртуальной таблицы:

"СтоимостьОСБухгалтерскийУчетОстаткиИОбороты"

сравнить с 0 или нулевым значением?
---
В запросе:

ВЫБОР
КОГДА СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.Реквизит1 Есть NULL ИЛИ СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.Реквизит1=0
ТОГДА
...
ИНАЧЕ
...
КОНЕЦ
---
В запросе:

ВЫБОР
КОГДА СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.Реквизит1 Есть NULL ИЛИ СтоимостьОСБухгалтерскийУчетОстаткиИОбороты.Реквизит1=0
ТОГДА
...
ИНАЧЕ
...
КОНЕЦ
---
это в самом запросе или после вывода данных из запроса?
---
Это инструкции запроса. А Вам где нужно?
---
у меня Основное средство и я сравниваю его амортизацию с 0
---
если амортизация нулевая то ОС списанно и его учитывать не надо
Здравствуйте, подскажите, пожалуйста, в таком вопросе. Понадобилось в УТ 11 добавлять в РС "Документы Физ лиц" данные по партнеру. В справочнике "партнеры" в командном интерфейсе в панели навигации в команде "перейти" есть строка с нужным РС, но в справочнике в режиме предприятия она не отображается. Подскажите, пожалуйста, где еще это настраивается?
---
чтоб был виден переход в РС Документы Физлиц из партнеров, надо, чтоб была проставлена константа "использ-ть партнеров как контрагентов" и партнер был выбран как частное лицо.
---
видимость проставлена, по ролям тоже стоят все галочки http://prntscr.com/h76vtm
---
чтоб был виден переход в РС Документы Физлиц из партнеров, надо, чтоб была проставлена константа "использ-ть партнеров как контрагентов" и партнер был выбран как частное лицо.
Ребят help! Такая ситуация клиент(пиво на разлив) осуществлял продажи несколько дней а потом аукнулся что в отчете остатки на складах у него минус потому что 2 сорта пива он продовал как один и приход забивал по одному. Мы дорабатывали продажи по комплектам и поэтому я просто выбрал комплект нужного пива чтоб с него списывался расход, перепровел отчет о розничных продажах но в остатках все равно минус. В движениях регистра он списывает с правильного сорта а отчет все равно формирует по неправильному
---
Ошибка была в коде комплекта
Спасибо всем за помощь.
---
продажи не по штрихкоду происходят. просто видел что одна и та же марка пива у разных производителей под одним штрихкодом идет и скорее всего программа ловит первое в выборке и на него списывает
Глянте отладчиком что там на самом деле. у меня просто ближайшее время не будет доступа до розницы проверить такой вариант не смогу
---
Тогда вопрос все ли регистры вы смотрите...
И кстати проверьте остатки по регистру универсальным отчетом, может остатки рвёт по какому-то измерению...
---
Ошибка была в коде комплекта
Спасибо всем за помощь.
Добрый день!

Разрабатываю новый интерфейс. Было бы удобно работать во вкладках.

Как добавить страницы-вкладки на форму знаю. Но, в этом случае нужно настраивать всю форму с нуля.

А можно ли как-то в настройка интерфейса или при создании новой формы, разместить уже существующие формы списков журналов и документов, или формы обработок на вкладки?
---
Это можно сделать не через страницы а через панель навигации (Перейти).
Для этого в нужной вам форме нужно добавить команды с признаком ПанельНавигацииФормы.Перейти, указать в "Тип параметра" нужные объекты метаданных и в модуле команды прописать открытие нужных форм.

Теперь у вас будет форма, где в верхней части окна будут ссылки-разделы на нужные формы отчетов и обработок.
---
Решила все таки вытащить через панель функций текущего раздела.
---
Это можно сделать не через страницы а через панель навигации (Перейти).
Для этого в нужной вам форме нужно добавить команды с признаком ПанельНавигацииФормы.Перейти, указать в "Тип параметра" нужные объекты метаданных и в модуле команды прописать открытие нужных форм.

Теперь у вас будет форма, где в верхней части окна будут ссылки-разделы на нужные формы отчетов и обработок.
---
Хороший вариант, спасибо!
---
Решила все таки вытащить через панель функций текущего раздела.
Вопрос, собственно, в названии темы. Почему не выводится символ вертикальной черты "|" в результате запроса? Выходит просто пустое поле.

```1c
    ВЫБОР
    КОГДА ПлощадкиПоДоговору.Подключение.ВыходГРС.Наименование ПОДОБНО "%" + "|" + "%"
    ТОГДА "|"
    ИНАЧЕ "
    КОНЕЦ КАК Поле1
```
---
в выборке пустое значение выходит.. вывела как параметр, все получилось
---
.(1) спецсимвол Перевод каретки. Попробуйте заменить на что-то другое, а в выборке заменять.
---
в выборке пустое значение выходит.. вывела как параметр, все получилось
Добрый день!

Есть внешний отчет. В нем нужно выбрать определенный регламентированный отчет.
У объекта Документ.РегламентированныйОтчет нет формы выбора.

Хотела во внешнем отчете добавить форму ФормаВыбораРегламентированногоОтчета.
Вызывать ее при нажатии на кнопку выбора в поле "РегламентированныйОтчет".

Возможно ли такое реализовать? И как это сделать?

Спасибо!
---
Обработка в приложении
---
На форме выбора в дин.списке есть свойство "Режим выбора" - нужно галочку отметить. Если не поможет -
 можно в конфигураторе создать форму документа с типом "Форма выбора документа", потом "перетянуть" ее во внешнюю обработку, а саму конфу не сохранять. После чего делать во внешней обработке что нужно
---
Если нет формы выбора документа, то используется форма по умолчанию, которая генерится платформой.
---
почему-то не генерится - открывается форма списка - и из нее не понятно как выбрать конкретный отчет - можно только открыть отчет.
---
Авто-форма выбора и должна быть похожа на авто-форму списка. А на что еще она будет похожа? Если вызываете форму выбора, то она должна давать выбрать документ. Если форма не информативна, то надо создать свой список и уже из него выбирать то, что нужно.
---
в авто форме нет возможности выбрать. к сожалению.
---
Обработка в приложении
---
Спасибо! Я примерно так и начала делать.
У меня почему-то для формы выбора нет кнопки "Выбрать". Для ТЧ есть.
Нужно установить какое-то свойство форме? чтобы для формы появилась кнопка "Выбрать"?
---
На форме выбора в дин.списке есть свойство "Режим выбора" - нужно галочку отметить. Если не поможет -
 можно в конфигураторе создать форму документа с типом "Форма выбора документа", потом "перетянуть" ее во внешнюю обработку, а саму конфу не сохранять. После чего делать во внешней обработке что нужно
---
спасибо большое! попробую!
Делаю внешнюю обработку для заполнения табличной части. Конфа - Розница 2.2.

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

```1c
    для каждого элемент из данные цикл
    НоваяСтрока = ИзменяемыйОбъект.Товары.Добавить();

    НоваяСтрока.Номенклатура = элемент.Номенклатура;
    НоваяСтрока.Характеристика = элемент.Характеристика;
    НоваяСтрока.КоличествоУпаковок = элемент.Количество;

    Сообщить(НоваяСтрока.Номенклатура + " : " +
    НоваяСтрока.Характеристика);
    конецЦикла;
```

Данные получены, с ними все в порядке, там и номенклатура нужного типа и характеристика с нужным владельцем.
После выполнения обработки получается такая картина.
Видно, что объекту НоваяСтрока значения присваивались, Номенклатура и Количество воспринялись нормально, а Характеристика как была пустой, так и осталась.

Что я делаю не так?
---
А если записать документ, характеристик там уже нет?
Или они где-то очищаются, или что-то делаете не так, можно весь код?
---
А если записать документ, характеристик там уже нет?
Или они где-то очищаются, или что-то делаете не так, можно весь код?
---
О! точно... записать. Спасибо.
Всем, привет! Обновил типовую конфигурацию Управление торговым предприятием (УТП) до 1.2.43.1
Установка обновления прошла успешно. Когда конфигурация запустилась, пользователю платформа выдает сообщение: "Для работы с данной конфигурацией требуется версия платформы 8.3.8 или более поздняя. Рекомендуется прекратить работу программы и обновить версию платформы 1С:Предприятие. В противном случае некоторые функции программы будут недоступны или будут работать неправильно."
Платформу я обновил до 8.3.10 - все работает! Но у меня возник вопрос! Интерес*
А что за функции? Может кто то привести пример?
---
Ну к примеру СтрНайти (ну она с 8.3.7), но суть примерна та же. Можно открыть список изменений для платформы 8.3.8 и посмотреть какие функции добавились
---
Ну к примеру СтрНайти (ну она с 8.3.7), но суть примерна та же. Можно открыть список изменений для платформы 8.3.8 и посмотреть какие функции добавились
---
Понял. Спасибо!
---
Да любая функция, которую добавили в платформе, если она использована в коде обновления=))Странный вопрос конечно=) Я лично никогда не затягивал с этим, чтоб данные не терять=))
В 1С Документообороте создаётся делегирование пользователя на двух других пользователей. Необходимо обрабатывать передачу задач этим пользователям, т.е. какие-то задачи должны передаваться одному пользователю, а какие-то другому. Подскажите пожалуйста в каком месте кода мне перехватить передачу задач.
---
1. Проверяете что исполнитель задачи = Сотрудник от которого необходимо делегировать права.
2. Проверяете подразделение автора (насколько я понял разделение)
3. В зависимости от подразделения устанавливаете нового исполнителя
4. Записываете бизнес-процесс
---
При каких условиях выполняется разделение? Смотрели делегирование по областям?
---
Условие по подразделению автора документа. Я смотрела только запрос, при котором формируются ЗадачиМне, но там отфильтровывать задачи думаю не правильно. Можно подробнее про делегирование по областям?
---
Во вложении прикрепил инструкцию, но она скорее всего не подойдет. Ваш вариант может быть и правильный. Я бы использовал бизнес событие при создании бизнес процесса и написал бы свой обработчик. Но все обработчики выполняются офлайн регламентным заданием.
---
А что написать в обработчике, я имею в виду не код, а сам смысл. Не могу понять.
---
1. Проверяете что исполнитель задачи = Сотрудник от которого необходимо делегировать права.
2. Проверяете подразделение автора (насколько я понял разделение)
3. В зависимости от подразделения устанавливаете нового исполнителя
4. Записываете бизнес-процесс
---
Вопрос по 3 пункту: Если я установлю исполнителем 1-го пользователя, то разве второму пользователю, на которого тоже установлено делегирование не придёт эта задача? Или из-за того, что исполнитель сменился делегирование уже не сработает?
---
после того как поменяется исполнитель, второй пользователь не увидит эту задачу.
---
А как распределить те задачи, которые уже есть?
---
Внешней обработкой. Пишите запрос с отбором по исполнителю и с признаком на бизнес процесс не завершен. Обходите запрос и дальше как указано выше.
---
Спасибо большое за советы, очень помогли.
Платформа 8.3.10. Нужно выгрузить Таблицу значений в файл mxl.
Пробую с помощью ЗначениеВФайл("C:\Выгрузка.mxl", ТЗ). Функция возвращает Истина, но файл не создаётся. Что я делаю нетак или вообще верен ли этот метод выгрузки?
---
ТЗ нельзя, надо Табличный документ.

```1c
    ТабДок = Новый ТабличныйДокумент;
    Построитель = Новый ПостроительОтчета();
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТестоваяТаблица);
    Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок );
    ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента);
```

P.S. ЗначениеВФайл("C:\Выгрузка.mxl", ТЗ) - вроде бинарный файл создается, а данные из него получить только обратной функцией ЗначениеИзФайла().
---
```1c
    Функция ВыгрузитьТЗ_в_XML(пТЗ,пФайлИмя)
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(пФайлИмя);
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("Root");
    Для А=0 По пТЗ.Количество()-1 Цикл
    ЗаписьXML.ЗаписатьНачалоЭлемента("item");
    Для Каждого Колонка Из пТЗ.Колонки Цикл
    ИмяАтрибута=Колонка.Имя;
    ЗначениеАтрибута=пТЗ[А][Колонка.Имя];
    ЗаписьXML.ЗаписатьАтрибут(ИмяАтрибута,Строка(ЗначениеАтрибута));
    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();
    КонецФункции
```
---
в MXL
---
Создать новый табличный документ, и перебирая все колонки и строки заполнить каждую ячейку через Область(). Далее табличный документ сохранить. Кода несколько строчек.
---
Описание:
Сохраняет любое сериализуемое значение в файл.
---
ТЗ нельзя, надо Табличный документ.

```1c
    ТабДок = Новый ТабличныйДокумент;
    Построитель = Новый ПостроительОтчета();
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТестоваяТаблица);
    Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок );
    ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента);
```

P.S. ЗначениеВФайл("C:\Выгрузка.mxl", ТЗ) - вроде бинарный файл создается, а данные из него получить только обратной функцией ЗначениеИзФайла().
---
https://forum.infostart.ru/forum9/topic70079/
Ребят. Интересует такой вопрос. Как правильно объявить переменную &НаКлиенте или &НаСервере?

Мне нужно значение из справочника Валюты получить и вставить в процедуру ПриОткрытии &НаКлиенте.

```1c
    &НаКлиенте
    Перем ВалютаЕвро;

    &НаСервере
    Функция ПоискВалюты()
    ВалютаЕвро = Справочники.Валюты.НайтиПоКоду("001");
    КонецФункции

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ВсегоВЕвро = СуммаВсего * ВалютаЕвро;
    КонецПроцедуры
```

Но в данном варианте значение не передаёт. Или нельзя вообще передать значение с сервера при открытии?
---
```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ВсегоВЕвро = СуммаВсего * ПоискВалюты();
    КонецПроцедуры

    &НаСервере
    Функция ПоискВалюты()
    Возврат Справочники.Валюты.НайтиПоКоду("001");
    КонецФункции
```

Или добавьте реквизит формы.
---
```1c
    &НаСервере
    Функция ПоискВалюты()
    мСтрктура = Новый Структура("Валюта",Справочники.Валюты.НайтиПоКоду("001"));
    Возврат = РегистрыСведений.КурсыВалют.СрезПоследних(ТекущаяДата(), мСтрктура).Получить(0).Курс;

    КонецФункции

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ВсегоВЕвро = СуммаВсего * ПоискВалюты();
    КонецПроцедуры
```

Получилось.
---
```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ВсегоВЕвро = СуммаВсего * ПоискВалюты();
    КонецПроцедуры

    &НаСервере
    Функция ПоискВалюты()
    Возврат Справочники.Валюты.НайтиПоКоду("001");
    КонецФункции
```

Или добавьте реквизит формы.
---
И вам наверное нужно получать не ссылку на валюту а курс валюты.
---
курс валюты
Всё верно.
Тогда реквизит добавить нужно?
---
Да
---
```1c
    &НаСервере
    Функция ПоискВалюты()
    мСтрктура = Новый Структура("Валюта",Справочники.Валюты.НайтиПоКоду("001"));
    Возврат = РегистрыСведений.КурсыВалют.СрезПоследних(ТекущаяДата(), мСтрктура).Получить(0).Курс;

    КонецФункции

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ВсегоВЕвро = СуммаВсего * ПоискВалюты();
    КонецПроцедуры
```

Получилось.