arefaste/1C_Forums huggingface dataset:
Подскажите, где посмотреть реализацию подобного....?
надо, что бы при указании шаблона печати в справочнике выводило в документе печатную форму...

например, спр.номенклатура в нем подчиненный справочник.паспорта.
В спр.паспорта реквизит шаблон.печати(выбор из несколько разных один), в табличной части перечисленные еще реквизиты...

Создаем документ выбираем номенклатуру, подставляются значения шаблон печати согласно номенклатуре и реквизиты ТЧ
- выводим на печать
---
ИмяМакета = Шапка.Организация;
ИмяМакета = сокрлп(Шапка.Организация);
---
Пишите внешнюю печатную форму для Номенклатуры, где и выбирайте в зависимости от чего угодно один из макетов...
---
Вопрос по другому ... Как получить имя макета из реквизита формы?

```1c
    ИмяМакета = "МакетНазвание";
    Макет = ПолучитьМакет(ИмяМакета);
```

например...

```1c
    Функция ПечатьДоверенности(МассивОбъектов, ОбъектыПечати, НазваниеМакета)
    .....
    ИмяМакета = Шапка.Организация;
    Макет = ПолучитьМакет(ИмяМакета)
    ....
```

выдает ошибку:Ошибка при вызове метода контекста (ПолучитьМакет)
  Макет = ПолучитьМакет(ИмяМакета);
по причине:
Недопустимое значение параметра (параметр номер '1')
---
ИмяМакета = Шапка.Организация;
ИмяМакета = сокрлп(Шапка.Организация);
Здравствуйте. УФ
Стандартная ситуация: у формы есть таблицазначений в качестве реквизита и связанная с ней таблицаформы.
Вопрос: как лучше называть их? Одинаковым именем или разными?
Стоит ли указывать, например, у таблицыформы префикс: Таблица или ТаблицаФормы перед именем?
---
Лучше префикс. Намаялся как-то в запарке при отладке от одинаковых имен.
---
Лучше префикс. Намаялся как-то в запарке при отладке от одинаковых имен.
---
Вот лично мне тоже больше нравиться с префиксом.
Так ка это разные объекты и свойства у них разные.
Чтобы не путаться.
Доброго времени. Можно ли написать такое условие покороче?

```1c
    Если Элемент.Сумма = 100 ИЛИ Элемент.Сумма = 200 ИЛИ Элемент.Сумма = 300 ИЛИ Элемент.Сумма = 400 Тогда
    Сообщить("ОК");
    КонецЕсли;
```

Допустим цифры в какую то структуру, а потом просто написать, типа

```1c
    Если Элемент.Сумма = СтруктураЧисел Тогда
```

Или это как то по другому делают?
---
Загнать эти числа в массив

тогда условие будет

МассивЧисле = Новый Массив;
МассивЧисел.Добавить(100)
МассивЧисел.Добавить(200)
МассивЧисел.Добавить(300)
МассивЧисел.Добавить(400)
.....

Если МассивЧисел.Найти(элемент.Сумма) <> Неопределено Тогда
Сообщить (Ок)
КонецЕсли;
---
А условие именно от 100 до 400?
---
Вообще там будут цифры, а от 100 до 400 это просто для примера.
---
Загнать эти числа в массив

тогда условие будет

МассивЧисле = Новый Массив;
МассивЧисел.Добавить(100)
МассивЧисел.Добавить(200)
МассивЧисел.Добавить(300)
МассивЧисел.Добавить(400)
.....

Если МассивЧисел.Найти(элемент.Сумма) <> Неопределено Тогда
Сообщить (Ок)
КонецЕсли;
---
Нет, что то не отрабатывает. В отладчике цифры видит, но условие не срабатывает.
---
зачем тебе это условие? для чего ты его используешь?
---
Я пишу обработку, которая сначала отбирает документы, затем я отмечаю нужные и создаются копии отмеченных документов, и от условия зависит один из реквизитов создаваемых документов.
---
то есть ты преебираешь ТЗ в цикле и проверяешь по условию?
---
ну да
---
я бы не в цикле это делал а в запросе. конечно на 5 - 10 доках не скажется, а вот если их будет за 100?
---
А как это можно сделать в запросе? Можно пример?
---
```1c
    Выбрать
    ТЗ.Документ,
    ТЗ.Сумма,
    ТЗ.Выгружать (твоя галочка)
    поместить ВтПредварительно
    из
    &ТЗ как ТЗ
    /////
    Выбрать
    ВтПредварительно.Документ,
    ВтПредварительно.Сумма
    Из ВтПредварительно как ВтПредварительно
    где ВтПредварительно.Выгружать = Истина
    И ВтПредварительно.Сумма в (&спНужныеСуммы)
```

Как то так
И уже в цикле клонируешь отобранные документы и все.
ТЗ это твоя таблица в обработке с документами, а спНужныеСуммы это твой СписокЗначений или Массив как в (3)
---
А то есть можно через массив, понял, спасибо.
---
посмотри через отладчик что возвращает Массив.Найти(...)
---
Понял. Пробема была в том, что Элемент.Сумма, хоть и показывает тип Число, но на деле это ссылка на реквизит, я просто приравнял Элемент.Сумма к числу и все заработало.
---
Спасибо. Я почти 5 лет занимаюсь 1С, из них больше 2х программированием, а все равно постоянно что то новое узнаю.
Здравствуйте!

Есть табличная часть: два реквизита.

В одном реквизите элементы справочника, в другом цифра.

Как бы вывести на экран эти элементы с учетом иерархии справочника? Чтобы отобразились все группы вверх по иерархии, в которых располагаются элементы?

Думал, сделать с помощи СКД вывод в табличный документ, но тут возникают две проблемы: реализация добавления новых элементов в табличную часть, редактирования числовых значений. В принципе обе проблемы решаемы, но может у кого есть еще варианты решения?
---
Можно попробовать сделать запрос к ТЧ с итогами и выгрузить его результат в дерево значений на форме.
---
на экран - опишите, что имеется ввиду!?
---
Надо в форме документа, с такой табличной частью вывести элементы содержащиеся с учетом иерархии.
---
нарисуй то, что должно получиться. Текстом непонятно вышло.
---
Табличная часть содержит:
Элемент1 2500
Элемент2 3500
Элемент3 5000

На форму надо вывести:

Группа1--------6000
___Группа1_1-6000
_____Элемент1-2500
_____Элемент2-3500
Группа2--------5000
___Элемент3----5000

Где ГруппаN группы из справочника.
---
Можно попробовать сделать запрос к ТЧ с итогами и выгрузить его результат в дерево значений на форме.
---
О точно, надо будет попробовать.
Есть документ внутренний заказ в нем добавил реквизит булево .

нужно если реквизит истина документ попадал в табличное поле обработки а если ложь чтоб не попадал.

есть форма на форме табличное поле документы в табличное поле попадают по значению (ДокументСписок.ВнутреннийЗаказ)

спасибо
---
Попробуй отбором поиграть, что то вроде:

```1c
    ТабличноеПоле.Отбор.Реквизит.ВидСравнения = ВидСравнения.Равно;
    ТабличноеПоле.Отбор.Реквизит.Значение = Значение;
    ТабличноеПоле.Отбор.Реквизит.Использование = Истина;
```

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

```1c
    ТабличноеПоле.Отбор.Реквизит.ВидСравнения = ВидСравнения.Равно;
    ТабличноеПоле.Отбор.Реквизит.Значение = Значение;
    ТабличноеПоле.Отбор.Реквизит.Использование = Истина;
```

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

Даные : ТабличноеПоле
ТипЗначения: ДокументСписок.ВнутреннийЗаказ
---
см (4)
---
Какая разница? Форма списка отображает список документов в табличном поле с типом "ДокументСписок.ВнутреннийЗаказ". У тебя такое же поле на форме, т.е. оно то же самое отображает и отборы и прочее все так же работают
---
Я понял но как бить если у меня на форме будет 3 табличных поля и туда будут буду выводить документы з ДокументСписок.ВнутреннийЗаказ только з разными типами реквизитов в одно поле выведу с реквизитом Новый второй ВОбработке и третий Закрытый.
---
мне нужно делать отбор в зависимости от поля в какое буду выводить.
---
СПАСИБО ВСЕМ ВЫШЛО
---
ТабличноеПоле1.Отбор.СтатусЗаказа.ВидСравнения = ВидСравнения.Равно;
 ТабличноеПоле1.Отбор.СтатусЗаказа.Значение = Перечисления.ЗначенняЗамовленя.Принят;
 ТабличноеПоле1.Отбор.СтатусЗаказа.Использование = Истина;
Приветствую!
Не могу сообразить - Есть выборка из результата запроса 2001 штука. Надо отправлять на сайт по 500. Как отправить последнюю?
---
КоличествоКОтправке=0;
Пока Выборка.Следующий() Цикл
КоличествоКОтправке = КоличествоКОтправке + 1;
Если КоличествоКОтправке>=500 Тогда
(отправляем накопленное)
КоличествоКОтправке=0;
КонецЕсли;
(накапливаем)
КонецЦикла;
(отправляем накопленное) //последняя порция
---
Если порциями по 500 но внутри 1 процедуры заведите счетчик, дошло до 500 - делаете нужные операции и потом сбрасываете счетчик и идете дальше
---
Также как и предыдущих
---
Запрос должен выбирать изменения для отправки на сайт с указанием ПЕРВЫЕ 500. Повторять процедуру отправки пока не кончатся изменения.
---
КоличествоКОтправке=0;
Пока Выборка.Следующий() Цикл
КоличествоКОтправке = КоличествоКОтправке + 1;
Если КоличествоКОтправке>=500 Тогда
(отправляем накопленное)
КоличествоКОтправке=0;
КонецЕсли;
(накапливаем)
КонецЦикла;
(отправляем накопленное) //последняя порция
---
Если порциями по 500 но внутри 1 процедуры заведите счетчик, дошло до 500 - делаете нужные операции и потом сбрасываете счетчик и идете дальше
Подскажите пожалуйста, как на языке запросов сделать условие для вычисления значений. Т.е. идея обычного отчета за валовую прибыль. Чтобы прибыль при ндс расчитывалась по одной формуле, а без ндс по другой
---
```1c
    Выбрать
    1 Как Количество,
    Выбор
    Когда &ЕстьНДС Тогда 5+5
    Иначе 5-2
    Конец Как Выручка
```

Никто не знает, что у тебя там за формулы, так что попробуй подумать сам или сформулировать вопрос более развернуто, с примерами, что куда добавляешь и что не получается.
---
Может быть так?
...
Выбор
           Когда ЕСТЬНДС Тогда Формула1
Иначе
          Формула2
Конец
.....
---
И как мне Формула1/Формула2 добавить в контейнер "Выбрать"??
---
```1c
    Выбрать
    1 Как Количество,
    Выбор
    Когда &ЕстьНДС Тогда 5+5
    Иначе 5-2
    Конец Как Выручка
```

Никто не знает, что у тебя там за формулы, так что попробуй подумать сам или сформулировать вопрос более развернуто, с примерами, что куда добавляешь и что не получается.
---
Спасибо огромное)Не получалось сформулировать более развернуто, но ты же меня понял)Я все условие писал в блоке "Где" и поэтому не получалось...
Коллеги, подскажите пожалуйста! В старой доброй неуправляемой форме при выводе списка значений в поле ввода наименования сокращаются. Как это можно обойти без доработок? Скриншот приложен.
---
Видимо без доработок, никак)
---
Удивительная тишина)
---
Глупости какие-нибудь, наверное, спрашиваю.
Ну хорошо, не совсем без доработок, но с минимумом.
Сейчас предлагается решение заместить поле ввода со списком значений неким полем, содержащим строку с разделителями, где будет все видно.
Обработчик списка значений останется старый.
Но просто таких полей в программе довольно много и работа по замене предстоит нешуточная.
Вот и спрашиваю, может настройки элементов форм какие-то не знаю или еще что?
---
нет таких настроек, придётся пилить вручную.
---
Видимо без доработок, никак)
---
можно попробовать заменить на поле элемента справочника - и в выпадающий список закидывать значения - правда они всегда будут висеть, и ещё и только после набора хотя-бы одного символа....
---
вот замена, да. Много замен (см.(3)). Хотели этого избежать. Видимо никак.
---
Эти волшебные "три точки" делаются программно.
Вот так это делается в форме списка документа Начисление зарплаты.

```1c
    Если Лев(КраткийСоставДокумента,2) = ", " Тогда
    ДлинаСтроки = СтрДлина(КраткийСоставДокумента);
    Если ДлинаСтроки < 100 Тогда
    КраткийСоставДокумента = Сред(КраткийСоставДокумента,3)
    Иначе
    КраткийСоставДокумента = Сред(КраткийСоставДокумента,3,95) + "...";
    КонецЕсли;

    КонецЕсли;
```
---
на моем последнем скриншоте ничего программно не сделано. Сама платформа обрезала.
---
Процедура КнопкаВыполнитьНажатие(Кнопка)
 ЭлементыФормы.ПолеВвода1.Значение.Добавить("1234567890АБВГДЕЁЖЗИКЛИМНОПРСТ");
      КонецПроцедуры
---
Вот например список значений. Ничего не обрезано.
---
Слишком короткие значения. Вот пример. Обрезало на 26-м символе.
---
В общем либо будем укорачивать названия справочника, либо в отдельных местах по запросу пользователя менять поле ввода с типом СписокЗначений на строку, которая будет собирать туда необрезанные наименования.
Всем спасибо.
Добрый день.

Ломаю голову уже несколько дней и не знаю с чего начать.

Есть справочник "Контрагенты" и в нем есть реквизиты: "Поле А", "Поле Б", "Поле В" и тд.
Так же есть Excel файл с полями: "Поле А", Поле А (новое)", "Поле Б", "Поле В" и тд.
Следует по полю: "Поле А", из Excel файла найти нужный элемент справочника "Контрагенты" и изменить в нем значение взятое из того же Excel. В Excel файле порядка 150 записей.

Подскажите с чего начинать, возможно кто-то уже сталкивался с такой задачей.

Заранее ВСЕМ спасибо!

Для наглядного примера прикрепляю картинку.
---
Попробуйте универсальную обработку "Загрузка данных из табличного документа" с ИТС.
---
можете попробовать обработку ЗагрузкаДанныхИзТабличногоДокумента (в некоторые конфигурации уже встроена)
---
1. прочитать файл эксель
2. в цикле перебрать получившиеся данные
3. найти по реквизиту значение
4. если нашли то получаем объект, записываем нужные данные и записываем сам элемент
5. выводим сообщение пользователю о результатах работы
---
возможно есть кусочки кода для примера?
---
можете попробовать обработку ЗагрузкаДанныхИзТабличногоДокумента (в некоторые конфигурации уже встроена)
---
Попробуйте универсальную обработку "Загрузка данных из табличного документа" с ИТС.
---
Если я не ошибаюсь данная обработка может только создать новые элементы в справочнике, а мне ведь нужно отредактировать уже существующие.
---
(5) Ваш метод действительно работает. Спасибо всем кто отозвался!
---
Небольшая рекомендация:
Т.к. поиск осуществляется по реквизиту ПолеА, то стоит существующий реквизит переименовать в СтароеЗначение_ПолеА и добавить новый реквизит ПолеА. Это позволит сохранить старые значения для возможной повторной обработки данных.
РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, Отгрузка.ПланируемаяДатаПоступления, ДЕНЬ)

а Если это ХозрасчетныйДвиженияССубконто.Регистратор.Дата =0
Как мне получить тогда данные
---
```1c
    ВЫБОР КОГДА
    ЕстьNULL(ХозрасчетныйДвиженияССубконто.Регистратор.Дата,ДатаВремя(1,1,1,0,0,0)) = ДатаВремя(1,1,1,0,0,0)
    ТОГДА РазностьДат(&ТекущаяДата,Отгрузка.ПланируемаяДатаПоступления,День)
    ИНАЧЕ РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, Отгрузка.ПланируемаяДатаПоступления, ДЕНЬ)
    КОНЕЦ
```
---
```1c
    ВЫБОР КОГДА
    ЕстьNULL(ХозрасчетныйДвиженияССубконто.Регистратор.Дата,ДатаВремя(1,1,1,0,0,0)) = ДатаВремя(1,1,1,0,0,0)
    ТОГДА РазностьДат(&ТекущаяДата,Отгрузка.ПланируемаяДатаПоступления,День)
    ИНАЧЕ РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, Отгрузка.ПланируемаяДатаПоступления, ДЕНЬ)
    КОНЕЦ
```
---
так странные цифры даёт
---
ВЫБОР КОГДА ЕстьNULL(ХозрасчетныйДвиженияССубконто.Регистратор.Дата,ДатаВремя(1,1,1,0,0,0)) = ДатаВремя(1,1,1,0,0,0) ТОГДА РазностьДат(&ТекущаяДата,Отгрузка.ПланируемаяДатаПоступления,День) ИНАЧЕ РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, Отгрузка.ПланируемаяДатаПоступления, ДЕНЬ) КОНЕЦ

Работает заменил только &ТекущаяДата на &Дата2
---
РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, &ТекущаяДата, ДЕНЬ) получаешь на текущую дату количество дней
---
А Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()) не пропустили?
---
зачем мне этот параметр? у меня СКД
---
не понятна строка ЕстьNULL(ХозрасчетныйДвиженияССубконто.Регистратор.Дата,ДатаВремя(1,1,1,0,0,0)) = ДатаВремя(1,1,1,0,0,0)
---
мне нужно РАЗНОСТЬДАТ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата, Отгрузка.ПланируемаяДатаПоступления, ДЕНЬ)

Но если не было оплаты то значение это ХозрасчетныйДвиженияССубконто.Регистратор.Дата = 0
тогда нужно вывести текущую дату и как это правильно оформить..
Пробую обратиться из 1С к market.yandex.ru через API.

```1c
    Запрос = "http:/api.content.market.yandex.ru/v1/model/12859245/info.xml?geo_id=213&fields=ALL&api_key=<Ключ>";
    HTTP = Новый HTTPСоединение("market.yandex.ru");
    vФайлОбмена = "d:\ЗапросПоиска.xml";
    HTTP.Получить(Запрос, vФайлОбмена);
```

выдает ошибку. Есть у кого-нибудь рабочий пример работы с api market.yandex?
---
Ребят, всем спасибо. Ошибка была в тексте запроса. Нужно вот так:

```1c
    Запрос = "/v1/model/12859245/info.xml?geo_id=213&fields=ALL&api_key=<Ключ>";
    HTTP = Новый HTTPСоединение("market.yandex.ru");
    vФайлОбмена = "d:\ЗапросПоиска.xml";
    HTTP.Получить(Запрос, vФайлОбмена);
```
---
В поиске много довольно примеров выходит.
http://infostart.ru/public/all/?st=t&public-filter%5Bsearch%5D=%FF%ED%E4%E5%EA%F1+%EC%E0%F0%EA%E5%F2
---
http:/api.content.market.yandex.ru/v1/model/12859245/info.xml?geo_id=213&fields=ALL&api_key=
Они либо платные либо парсят страницы. Мне нужен пример API
---
с API разве не через JSON работают?
---
- есть 2 варианта: JSON или XML
(5) в курсе. Ключ есть
---
и что https://tech.yandex.ru/market/partner/doc/dg/reference/all-methods-docpage/ тут не понятного?
---
все API платные, потому что сам API яндекса платный и тарифицируется количеством запросов. более того вам нужно иметь свой магазин для прохождения регистрации. вся документация есть на хэлпах яндекса
---
ищешь метод, тыкаешь по нему, там пример запроса и пример json.
---
Ребят, всем спасибо. Ошибка была в тексте запроса. Нужно вот так:

```1c
    Запрос = "/v1/model/12859245/info.xml?geo_id=213&fields=ALL&api_key=<Ключ>";
    HTTP = Новый HTTPСоединение("market.yandex.ru");
    vФайлОбмена = "d:\ЗапросПоиска.xml";
    HTTP.Получить(Запрос, vФайлОбмена);
```
---
Сообщение было скрыто модератором.
В макете обработки ВНЕШНЕЙ печатной формы редактор "Строки на разных языках" добавить языки. КАК? Сейчас есть два. Надо больше.
---
Импортировал в конфигурацию, экспортитровал из конфы. Появились языки, заданные в метаданные - общие - языки
---
Похоже, что доступные языки макет берет из конфы, в которой редактируется.
А значит нужно что? Правильно!
---
Импортировал в конфигурацию, экспортитровал из конфы. Появились языки, заданные в метаданные - общие - языки
Доброго времени суток. Можно ли каким-то образом передать значения переменных в обработку, кроме как с помощью экспортных переменных?
Приложение обычное, не управляемое.
---
Нет, так нельзя. Внутренняя обработка в конфигураторе - это тип объекта (класс, можно сказать).
Экземпляров этого типа (одинаковых обработок) теоретически может быть открыто много.
Если хочешь из кода открыть форму своей обработки с установленным реквизитом, то можно так:

```1c
    ФормаОбработки = ПолучитьФорму("Обработка.ПроверкаАдреса.Форма"); // при этом фактически в памяти инициализируется экземпляр обработки и для него создается форма
    ФормаОбработки.Адрес = "тра-ля-ля";
    ФормаОбработки.Открыть();
```

Но если для обработки настроено пользовательское сохранение значений реквизитов между сеансами, то восстановление пользовательских значений сработает при открытии формы и перезатрет.
Тогда можно присвоить реквизит и после открытия формы :)
Но учти, что в управляемых формах все совсем по-другому, а реквизиты отчетов и обработок там превращаются в тыкву.
Если ты хочешь работать с обработкой без создания форм, тогда в (6) пример дали.
---
во внешней обработке, для обычного приложения сделай реквизит "ДополнительныеПараметры"
и анализируй структуру.
А задается она при регистрации внешней обработки в табличной части в параметрах обработки.
Соответственно для свой однотипной обработки, но в разных базах можешь засылать какие-либо специфические параметры, без перепиливания всей обработки.
---
Откуда и как вызывается обработка?
---
В обычном приложении проще всего - тупо присвоением реквизиту обработки (не формы).
---
Значит, если, к примеру, есть внутренняя обработка ПроверкаАдреса, в ней создан реквизит Адрес, ему можно просто присвоить Обработки.ПроверкаАдреса.Адрес = АдресОбъекта, либо необходимо сперва что-то инициализировать? Или я делаю что-то не так? Просто познакомился с 1С сравнительно недавно.
---
ПроверкаАдреса = Обработки.ПроверкаАдреса.Создать();
ПроверкаАдреса.Адрес = АдресОбъекта;
ПроверкаАдреса.Проверить();
---
Нет, так нельзя. Внутренняя обработка в конфигураторе - это тип объекта (класс, можно сказать).
Экземпляров этого типа (одинаковых обработок) теоретически может быть открыто много.
Если хочешь из кода открыть форму своей обработки с установленным реквизитом, то можно так:

```1c
    ФормаОбработки = ПолучитьФорму("Обработка.ПроверкаАдреса.Форма"); // при этом фактически в памяти инициализируется экземпляр обработки и для него создается форма
    ФормаОбработки.Адрес = "тра-ля-ля";
    ФормаОбработки.Открыть();
```

Но если для обработки настроено пользовательское сохранение значений реквизитов между сеансами, то восстановление пользовательских значений сработает при открытии формы и перезатрет.
Тогда можно присвоить реквизит и после открытия формы :)
Но учти, что в управляемых формах все совсем по-другому, а реквизиты отчетов и обработок там превращаются в тыкву.
Если ты хочешь работать с обработкой без создания форм, тогда в (6) пример дали.
---
Сообщение было скрыто модератором.
Доброго времени суток.

Есть 1с Бухгалтерия для Украины на поддержке.

Есть печатные формы полностью на украинском языке (без возможности переключения).

Нужно одну из этих форм сделать на русском. Внешней я ее сделал, изменил макет, но даты и документы печатаются на украинском языке. (например от 24 березня 2017р)

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

Но тем не менее некоторые реквизиты на украинском. Мне вообще желательно во всей базе отключить украинский язык.

не нашел где это сделать.
---
Посмотрите в макете свойства этой ячейки, свойство "Формат"
---
Смотрите, откуда появляется эта березня. Скорее всего, в форматной строке преобразования даты в строку стоит что-то типа "Л=uk_UA; ДЛФ=DDT"
Ну а печать всех документов, если в конфигурации предусмотрен только украинский язык, вы никак не переделаете - разве что напишите свои макеты печатных форм.
---
"Л=uk_UA; ДЛФ=DDT"
Дело в том, что внешнюю форму я делал из стандартной.

т.е. идет запрос, а заполнение из шапки.

```1c
    ОбластьМакета = Макет.ПолучитьОбласть("ЛицеваяСторона");
    ОбластьМакета.Параметры.Заполнить(Шапка);
```

Из запроса попадает дата в формате 02.04.2017, а при заполнение он переводит дату на украинский язык.

При этом перед заполнением стоит КодЯзыкаПечать = "ru". Но не срабатывает.
---
Посмотрите в макете свойства этой ячейки, свойство "Формат"
---
Спасибо!!! А то кучу сайтов перерыл везде только изменить язык печати формы советуют.
Мне нужно получить имя временного файла с префиксом.
Получаю имя временного файла с помощью
```1c
    ИмяФайла = ПолучитьИмяВременногоФайла("xls");
```
. 'ИмяФайла' будет например "V8_AD11_6f". Нужно чтобы имя была "МойПрефикс_V8_AD11_6f".
---
, (3), (4) не взлетит :)
В общем надо как-то так:

```1c
    КаталогВФ = КаталогВременныхФайлов();
    ИмяВФ = "МойПрефикс_"+СтрЗаменить(ПолучитьИмяВременногоФайла(), КаталогВФ, ");
    Файл = Новый Файл(КаталогВФ + ИмяВФ);
```
---
```1c
    Парсер = Новый Файл(ПолучитьИмяВременногоФайла("xls")); // создания файла при этом не будет
    ИмяФайла = Парсер.Путь + МойПрефикс + "_" + Парсер.Имя;
```
---
ИмяФайла = "ТвойПрефикс"+ИмяФайла;
---
```1c
    ИмяФайла = МойПрефикс + "_" + ПолучитьИмяВременногоФайла("xls");
```
---
, (3), (4) не взлетит :)
В общем надо как-то так:

```1c
    КаталогВФ = КаталогВременныхФайлов();
    ИмяВФ = "МойПрефикс_"+СтрЗаменить(ПолучитьИмяВременногоФайла(), КаталогВФ, ");
    Файл = Новый Файл(КаталогВФ + ИмяВФ);
```
---
ИмяФайла = "МойПрефикс_" + ПолучитьИмяВременногоФайла("xls");
Файл = Новый Файл(ИмяФайла);
---
Да, тупанул :) Хорошая ловушка :)
---
```1c
    Парсер = Новый Файл(ПолучитьИмяВременногоФайла("xls")); // создания файла при этом не будет
    ИмяФайла = Парсер.Путь + МойПрефикс + "_" + Парсер.Имя;
```
---
Спасибо всем, Вопрос решен! :)