arefaste/1C_Forums huggingface dataset:
Всем привет! Хелп!
Есть внешний отчет, при формировании пишет следующее:
Поле не найдено "СведенияКадровойИсторияСотрудников.ВидЗанятости" И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости

И собственно ругается на этот кусок запроса,
//ЗапросКадроваяИсторияСотрудников

ВЫБРАТЬ РАЗРЕШЕННЫЕ
СведенияКадровойИсторияСотрудников.Период,
СведенияКадровойИсторияСотрудников.ФизическоеЛицо,
  ВЫБОР
        КОГДА СведенияКадровойИсторияСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
        И СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
        ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
         КОГДА СведенияКадровойИсторияСотрудников2.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
         И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
        ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
        КОГДА СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
        ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
        КОГДА СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
        ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
        ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
     КОНЕЦ КАК Подразделение
ПОМЕСТИТЬ ВТСведенияОПодразделенияхПредварительно

ИЗ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников
ЛЕВОЕ СОЕДИНЕНИЕ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников2
ПО СведенияКадровойИсторияСотрудников.ФизическоеЛицо = СведенияКадровойИсторияСотрудников2.ФизическоеЛицо
И СведенияКадровойИсторияСотрудников.Период = СведенияКадровойИсторияСотрудников2.Период
И СведенияКадровойИсторияСотрудников.Организация = СведенияКадровойИсторияСотрудников2.Организация
И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости
И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
;

Что его тут не устраивает?
---
Поле не найдено "СведенияКадровойИсторияСотрудников.ВидЗанятости"
в таблице "СведенияКадровойИсторияСотрудников"

Копируйте текст запроса, и открывайте, устраняя ошибки, пока не откроется.

Отчёт, наверное, самописный, а в конфигурации разработчики убрали такое поле или переименовали.
---
СведенияКадровойИсторияСотрудников.ВидЗанятости
Реквизита ВидЗанятости нет сейчас есть РегистрСведений.ВидыЗанятостиСотрудников.
---
Поле не найдено "СведенияКадровойИсторияСотрудников.ВидЗанятости"
в таблице "СведенияКадровойИсторияСотрудников"

Копируйте текст запроса, и открывайте, устраняя ошибки, пока не откроется.

Отчёт, наверное, самописный, а в конфигурации разработчики убрали такое поле или переименовали.
---
Спасибо огромное, просмотрев регистр, действительно, поле то удалено)) Спасибо бояре!
Здравствуйте. Помогите разобраться. Проблема такая, что в документе ПеремещениеТоваров завёл 2 новых реквизита (числа), вставил в форму их. Но при записи документа выдаёт ошибку с разным количеством полей. Моя база серверная, и к сожалению в серверной части кода я не могу проверять точкой останова.

В общем модуле есть такая функция, которая создаёт запрос

```1c
    Функция ПолучитьМассивИспользуемыхРегистров(Регистратор, Движения, МассивИсключаемыхРегистров = Неопределено) Экспорт

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Регистратор", Регистратор);

    Результат = Новый Массив;
    МаксимумТаблицВЗапросе = 256;

    СчетчикТаблиц = 0;
    СчетчикДвижений = 0;

    ВсегоДвижений = Движения.Количество();
    ТекстЗапроса = ";
    Для Каждого Движение Из Движения Цикл

    СчетчикДвижений = СчетчикДвижений + 1;

    ПропуститьРегистр = МассивИсключаемыхРегистров <> Неопределено
    И МассивИсключаемыхРегистров.Найти(Движение.Имя) <> Неопределено;

    Если Не ПропуститьРегистр Тогда

    Если СчетчикТаблиц > 0 Тогда

    ТекстЗапроса = ТекстЗапроса + "
    |ОБЪЕДИНИТЬ ВСЕ
    |";

    КонецЕсли;

    СчетчикТаблиц = СчетчикТаблиц + 1;

    ТекстЗапроса = ТекстЗапроса +
    "
    |ВЫБРАТЬ ПЕРВЫЕ 1
    |"" + Движение.Имя + "" КАК ИмяРегистра
    |
    |ИЗ " + Движение.ПолноеИмя() + "
    |
    |ГДЕ Регистратор = &Регистратор
    |";

    КонецЕсли;

    Если СчетчикТаблиц = МаксимумТаблицВЗапросе Или СчетчикДвижений = ВсегоДвижений Тогда

    Запрос.Текст = ТекстЗапроса;
    ТекстЗапроса = ";
    СчетчикТаблиц = 0;

    Если Результат.Количество() = 0 Тогда

    Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИмяРегистра");

    Иначе

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Результат.Добавить(Выборка.ИмяРегистра);
    КонецЦикла;

    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    Возврат Результат;

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

И процедура, в которой происходит ошибка:

```1c
    Процедура ИницализироватьТаблицыДляДвижений(Запрос, ТекстыЗапроса, Таблицы) Экспорт

    // Формирование текст запроса.
    Запрос.Текст = ";
    Для Каждого ТекстЗапроса из ТекстыЗапроса Цикл
    Запрос.Текст = Запрос.Текст + ТекстЗапроса.Значение;
    КонецЦикла;

    // Выполнение запроса.
    Результат = Запрос.ВыполнитьПакет(); //тут и выводит ошибку
```
---
Добавление реквизитов на форму не могло повлиять на таблицы регистров, при формировании движений.
Попробуйте через Сообщить() вернуть "Запрос.Текст", и посмотрите, какой запрос пытается выполнить СУБД.
---
Добавление реквизитов на форму не могло повлиять на таблицы регистров, при формировании движений.
Попробуйте через Сообщить() вернуть "Запрос.Текст", и посмотрите, какой запрос пытается выполнить СУБД.
---
Я думаю, ошибка не в этом месте. Такая ошибка возникает, когда применяется команда ОБЪЕДИНИТЬ в тексте запроса и объединяются несколько запросов. В этом случае количество полей в объединяемых запросах должно совпадать.
Добрый день, форумчане
Речь идёт о УТ 11.3.3.163, а в частности о механизме ввода на основании. В документе "Заказ клиента" добавил возможность вводить на основании документ "Сборка". С этого момента в форме списка заказов и в форме элемента у меня появляется 2 панели ввода на основании. Подскажите, пожалуйста, в какую сторону копать, чтобы выяснить почему новая кнопка выделяется в отдельную панель? Ручками никакие панели и кнопки ен рисовал. Это чудит встроенный механизм по генерации этих кнопок
---
Первая кнопка ввода на основании собирается из процедуры
```1c
    // Заполняет список команд создания на основании.
    //
    // Параметры:
    // КомандыСоздатьНаОсновании - ТаблицаЗначений - состав полей см. в функции ВводНаОсновании.СоздатьКоллекциюКомандСоздатьНаОсновании
    //
    Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСоздатьНаОсновании) Экспорт

    Документы.АктВыполненныхРабот.ДобавитьКомандуСоздатьНаОснованииЗаказа(КомандыСоздатьНаОсновании);

    Документы.ДоверенностьВыданная.ДобавитьКомандуСоздатьНаОсновании(КомандыСоздатьНаОсновании);

    ВводНаОснованииПереопределяемый.ДобавитьКомандуСоздатьНаОснованииБизнесПроцессЗадание(КомандыСоздатьНаОсновании);

    Документы.ЗаказНаПеремещение.ДобавитьКомандуСоздатьНаОснованииЗаказаКлиентаПоГруппеСкладо­в(КомандыСоздатьНаОсновании);
```
 в модуле менеджера, а ты добавил только в документе что один вводиться на основании другого.
---
Первая кнопка ввода на основании собирается из процедуры
```1c
    // Заполняет список команд создания на основании.
    //
    // Параметры:
    // КомандыСоздатьНаОсновании - ТаблицаЗначений - состав полей см. в функции ВводНаОсновании.СоздатьКоллекциюКомандСоздатьНаОсновании
    //
    Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСоздатьНаОсновании) Экспорт

    Документы.АктВыполненныхРабот.ДобавитьКомандуСоздатьНаОснованииЗаказа(КомандыСоздатьНаОсновании);

    Документы.ДоверенностьВыданная.ДобавитьКомандуСоздатьНаОсновании(КомандыСоздатьНаОсновании);

    ВводНаОснованииПереопределяемый.ДобавитьКомандуСоздатьНаОснованииБизнесПроцессЗадание(КомандыСоздатьНаОсновании);

    Документы.ЗаказНаПеремещение.ДобавитьКомандуСоздатьНаОснованииЗаказаКлиентаПоГруппеСкладо­в(КомандыСоздатьНаОсновании);
```
 в модуле менеджера, а ты добавил только в документе что один вводиться на основании другого.
---
Спасибо, Вы оказались абсолютно правы
Надо получить уровень товары и группы товаров в справочнике. Написал:
Сообщить("Выборка.УровеньВВыборке() = " + Выборка.УровеньВВыборке());

Выдает для товара уровня 3 УровеньВВыборке = 0.

Вопрос: чем получить уровень в выборке?
---
А просто .Выборка.ссылка.Уровень не прокатит?
---
А просто .Выборка.ссылка.Уровень не прокатит?
---
Спасибо, сработало.
Здравствуйте! Пытаюсь создать группы и элементы в справочнике. "Офис.Ж/Д №30" переносится в группу, а "16 эт.жилой дом №30 блок 1" нет. Подскажите пожалуйста, где ошибся.

```1c
    спр = создатьОбъект("Справочник.Объекты");
    спр1 = создатьОбъект("Справочник.Объекты");

    спр.НоваяГруппа();
    спр.Наименование = "Ж/Д № 30";
    спр.УстановитьНовыйКод();
    спр.Записать();

    спр1.Новый();
    спр1.Наименование = "16 эт.жилой дом №30 блок 1";
    спр1.ОбъектГЖФ = "3";
    спр1.УстановитьНовыйКод();
    спр1.ИспользоватьРодителя(спр);
    спр1.Записать();

    спр1.Новый();
    спр1.Наименование = "Офис.Ж/Д №30";
    спр1.ОбъектГЖФ = "3";
    спр1.УстановитьНовыйКод();
    спр1.ИспользоватьРодителя(спр);
    спр1.Записать();
```
---
Давно это было... Кажется, метод ИспользоватьРодителя надо вызывать до вызова метода Новый().
---
Давно это было... Кажется, метод ИспользоватьРодителя надо вызывать до вызова метода Новый().
---
Спасибо!
---
"ИспользоватьРодителя надо вызывать до вызова метода Новый()", -- помогло?
---
Помогло
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Программно заполняю ТЧ документа:

```1c
    для каждого стр из з.Выполнить().Выгрузить() цикл
    новСтр = РасходныеНакладные.Добавить();
    новСтр.РеализацияТоваровУслуг = стр.Ссылка;
    новСтр.Контрагент = новСтр.РеализацияТоваровУслуг.Контрагент;
    новСтр.Сумма = стр.СуммаДокумента;
    ЗаполнитьОбщийВесРейса ();
    ЗаполнитьОбщийОбъемРейса();
    Если НЕ Срочный Тогда
    Если ОбщийВесРН > Грузоподъемность Тогда
    Сообщить("Вес превышает установленные нормы");
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```

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

Как можно удалить или не сохранять эту последнюю запись с перебором по весу?
---
```1c
    Сообщить("Вес превышает установленные нормы");
    РасходныеНакладные.Удалить(РасходныеНакладные[РасходныеНакладные.Количество()-1]);
    // или
    РасходныеНакладные.Удалить(новСтр);
```
---
```1c
    РасходныеНакладные.Удалить(РасходныеНакладные[РасходныеНакладные.Количество()-1])
```
---
РасходныеНакладные.Удалить(новСтр)
---
сначала выполнить проверку, а уж потом добавлять и заполнять
---
Для этого надо процедуру в функцию переделать, а учитывая, что в коде выборка выгружается в ТЗ, да еще и контрагент через точку тянется - есть сомнения.
---
```1c
    для каждого стр из з.Выполнить().Выгрузить() цикл
    новСтр = РасходныеНакладные.Добавить();
    новСтр.РеализацияТоваровУслуг = стр.Ссылка;
    новСтр.Контрагент = новСтр.РеализацияТоваровУслуг.Контрагент;
    новСтр.Сумма = стр.СуммаДокумента;
    ЗаполнитьОбщийВесРейса ();
    ЗаполнитьОбщийОбъемРейса();
    Если НЕ Срочный Тогда
    Если ОбщийВесРН > Грузоподъемность Тогда
    Сообщить("Вес превышает установленные нормы");
    РасходныеНакладные.Удалить(новСтр);
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```
---
```1c
    Сообщить("Вес превышает установленные нормы");
    РасходныеНакладные.Удалить(РасходныеНакладные[РасходныеНакладные.Количество()-1]);
    // или
    РасходныеНакладные.Удалить(новСтр);
```
---
```1c
    РасходныеНакладные.Удалить(РасходныеНакладные[РасходныеНакладные.Количество()-1])
```
---
РасходныеНакладные.Удалить(новСтр)
---
Благодарю всех троих. Все решения сработали. Но какое из них оптимальнее и надежнее?
---
наверно (4) , если не так так эдак удалится, 100% надежность
---
можно проверять общий вес + вес строки и только если он не превышает - тогда и создавать строку и заполнять её....
БП 3.0.60.46 Корп
ПриОбновлении упустил какую-то деталь, но суть проблемы в следующем.

Для Покупателя и Продавца металоллома в договорах поставщика, покупателя необходимо ставить флажок "Организация выступает в качестве налогового агента по уплате НДС".

Так вот в договорах поставщика все ок. Но вот в договоре покупателя данный флажок скрыт и я не могу найти то место, где этот флажок скрывается в форме элемента договора.
---
Галки установлены в настройках?
---
Галки установлены в настройках?
---
Спасибо! Заработало !
В УФ споткнулся на ерунде...
В форме создал реквизит полеввода с типом СписокЗначений для вариантов действий.
Заполняю значениями на клиенте в проц.ПриОткрытии в модуле формы, в форме отображаются сразу все значения через ;

В свойствах поля ставлю галку РежимВыбораИзСписка
Снова заполняю список в модуле формы
Код:

Элементы.сзТипы.СписокВыбора.Добавить("Знач1");
Элементы.сзТипы.СписокВыбора.Добавить("Знач2");

список заполнен, выпадает, выбираю, но не сохраняет выбранное значение.

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

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

Процедура ВыполнитьНаСервере()
 Запрос = Новый Запрос(

   "ВЫБРАТЬ
   | СчетФактураВыданный.Ссылка КАК Ссылка
   |ИЗ
   | Документ.СчетФактураВыданный КАК СчетФактураВыданный
   |ГДЕ
   | СчетФактураВыданный.Дата МЕЖДУ &НачПериода И &КонПериода
   | И СчетФактураВыданный.Проведен
   | И СчетФактураВыданный.Контрагент = &Контрагент");

 Запрос.УстановитьПараметр("НачПериода", Объект.НачПериода);
 Запрос.УстановитьПараметр("КонПериода", КонецДня(КонецМесяца(Объект.КонПериода)));
 Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);

 Выборка = Запрос.Выполнить().Выбрать();

 к = 0;

 Пока Выборка.Следующий() Цикл

  к = к + 1;

  ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
  ДокОбъект.Номер = ДокОбъект.Номер + "/249";

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

 КонецЦикла;

 // Вставить содержимое обработчика.
КонецПроцедуры
---
не, при таком номере тогда надо пробовать
ДокОбъект.Номер = СокрЛП(ДокОбъект.Номер) + "/249"
---
а какая ошибка выдается?
---
а конкретно что-не получается ? Ошибку выдает, или не так как надо отрабатывает ?
Да и по поводу префикса непонятно.
Префикс - это ПЕРЕД номером, а не после.
т.е. "249"+ДокОбъект.Номер
---
ошибка не выдает, не присваивает номер,
префикс нужен после номера основного
---
так, видимо, вся возможная длина реквизита номер заполнена, и записать "добавок" просто некуда.
напр., длина номера 10 знаков и номера счет-фактуры "0000000001" и т.д.
---
ща задача усложнится ))) Нужно будет отрезать лидирующие нули, и возможно оставить реальный префикс
---
попробуйте эту строчку
ДокОбъект.Номер = ДокОбъект.Номер + "/249";
поменять на
ДокОбъект.Номер = Прав(СокрЛП(ДокОбъект.Номер),6) + "/249"; -- здесь 6 замените на (длина номера документа - 4)
---
спасибо! буду пробовать!
---
не, при таком номере тогда надо пробовать
ДокОбъект.Номер = СокрЛП(ДокОбъект.Номер) + "/249"
---
спасибо Вам отдельно!
---
пробую!
---
спасибо всем за помощь!!! все получилось!
Доброго дня всем, возник такой вопрос как создать отчет в СКД что бы он показывал проведенных контрагентов, а не общий список?
---
тут и отчет не нужен. В форме списка отбор установите и все.

А подобные отчеты делаются, буквально за пару секунд. Для этого даже навыки программирования не нужны.
Универсальным отчетом в почти любой типовой конфе.
---
Контрагенты, как элементы справочника, не могут быть проведены. Уточните вопрос
---
Поставили задачу. В отчете сделать выбор варианта отчета, по помеченным на удаление, общий список, и список контрагентов без пометок на удаление.
---
а причём ту проведение?
---
а как сделать отчет контрагентов без пометки на удаление?
---
тут и отчет не нужен. В форме списка отбор установите и все.

А подобные отчеты делаются, буквально за пару секунд. Для этого даже навыки программирования не нужны.
Универсальным отчетом в почти любой типовой конфе.
---
выбрать ссылка
Из Справочник.Контрагенты
ГДЕ НЕ ПометкаУдаления

Что тут такого?
Есть значение, например "Слово", можно ли програмно записать на английском языке или транслитом. "Slovo" - тоже подойдет.
---
и пусть сами вводят на английском названия. Как лучше сделать?
так это у постановщика задачи спросите.
Программа для людей, а не люди для программы.
Если каждый раз пользователь будет впечатывать текст руками, - то чем тогда 1С будет от экселя отличатся ? Да и поле никакое не нужно. Пусть в печатной форме и вписывают.

(5) Во-первых сложно. Во-вторых для макета нет смысла.
да нет ничего сложного. Раз плюнуть.
---
можно написать функцию по преобразованию русских букв в латиницу.
пример
---
Алгоритм транслита пишется на коленке за то же время, что и готовый находится. С переводом сложнее. Но можно взять какую-то простую словарную базу и брать перевод из нее, а если не находится - то транслитом.
---
можно по API к яндекс переводчику цепануться. Тут на сайте и обработки есть такие.
Но, есть вероятность, что ТС-у, с такой задачей будет сложно справится.
---
Во-первых сложно. Во-вторых для макета нет смысла.

Мне нужно всего получить параметры в макет и те что нужно, выводить на английском языке. Тут просто 2 варианта или написать функция для транслита, или добавить реквизиты и пусть сами вводят на английском названия. Как лучше сделать?
---
и пусть сами вводят на английском названия. Как лучше сделать?
так это у постановщика задачи спросите.
Программа для людей, а не люди для программы.
Если каждый раз пользователь будет впечатывать текст руками, - то чем тогда 1С будет от экселя отличатся ? Да и поле никакое не нужно. Пусть в печатной форме и вписывают.

(5) Во-первых сложно. Во-вторых для макета нет смысла.
да нет ничего сложного. Раз плюнуть.
---
Вот я и о том же думаю.
Спасибо всем вам за ответы
---
Если можно что-то не отдавать пользователю, то ессно нужно не отдавать. Если желательно для простых слов видеть все-таки адекватный перевод а не транслит, тогда я бы сделал комбинацию простого переводчика и транслита для тех слов, что не нашлись в словарной базе. Простую словарную базу общей лексики небольшого размера можно хоть в регистр сведений загрузить. С одним измерением и одним ресурсом.
(6) Вряд ли ему важен качественный перевод. А плодить лишние внешние зависимости, особенно в виде http-сервисов, я бы поостерегся. Хоть это модно и молодежно.