Склонение ФИО и должностей через веб-сервис – 1С 8.2 / 8.3

Публикация № 143273

Разработка - Практика программирования

склонение падеж ФИО должность отдел

Предлагаемая разработка предоставляет программистам 1С функцию склонения по падежам слов и словосочетаний на русском и украинском языках, а также функцию формирования прописи чисел в заданном падеже. Программа умеет склонять фамилии, имена и отчества, а также должности, названия отделов и юридических лиц (на украинском пока только ФИО). Указание пола не требуется. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому определяется пол лица. Алгоритм демонстрирует высокое качество склонения, а для случаев, когда программа все же ошибается, предусмотрен сервис оперативного исправления ошибок. Программа реализована в виде веб-сервиса, доступного бесплатно всем желающим (до 1000 запросов в сутки). Для вызова функции склонения из 1С 8.2 достаточно 3 строчек кода, при этом не нужно включать в конфигурацию никаких дополнительных DLL. Пример обработки на языке 1С прилагается.

Реализуемые функции

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

Например, на входе:

ведущий инженер-программист III категории

На выходе: 

И. ведущий инженер-программист III категории ведущие инженеры-программисты III категории
Р. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Д. ведущему инженеру-программисту III категории ведущим инженерам-программистам III категории
В. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Т. ведущим инженером-программистом III категории ведущими инженерами-программистами III категории
П. о ведущем инженере-программисте III категории о ведущих инженерах-программистах III категории
Род: мужской

Число поддерживаемых типов словосочетаний не ограничено фамилиями и должностями.  Программа умеет склонять также названия подразделений, юридических лиц, географические названия и многое другое.  Высокое качество склонения обеспечивается использованием словарей, в частности, «Словаря имен собственных» Ф.Л. Агеенко на 38 000 единиц.  За 9 лет работы над «Морфером» было составлено более 27 000 примеров склонения для русского и более 11 000 для украинского языка.  База примеров постоянно пополняется и используется для контроля качества продукта.

Веб-сервис также реализует функцию прописи чисел и денежных сумм в произвольном падеже, позволяющую формировать такие фразы как: «в течение 7 (Семи) календарных дней» («21 календарного дня»), «в размере 1000 (Одной тысячи) рублей» («десяти тысяч рублей») и т.п.  Склонение единицы измерения также осуществляется автоматически.  Нет необходимости указывать заранее все падежные формы ("рубль", "рубля", "рублей").

Быстрый старт: склонение должности

Программа для склонения должности будет выглядеть так:

Морфер = Обработки.Морфер.Создать();
Результат = Морфер.СклонятьРусский("Генеральный директор");

Сообщить("Родительный (кого?): " + Результат.Р);
Сообщить("Дательный   (кому?): " + Результат.Д);
Сообщить("Винительный (кого?): " + Результат.В);
Сообщить("Творительный (кем?): " + Результат.Т);

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

Родительный (кого?): Генерального директора
Дательный   (кому?): Генеральному директору
Винительный (кого?): Генерального директора
Творительный (кем?): Генеральным директором
Предложный (о ком?): о Генеральном директоре

Для украинского языка функция склонения называется СклонятьУкраинский:

результат = Морфер.СклонятьУкраинский("Лук'янченко Леонід Аркадійович");

Сообщить("Родовий     (кого?): " + результат.Р);
Сообщить("Давальний   (кому?): " + результат.Д);
Сообщить("Знахідний   (кого?): " + результат.З);
Сообщить("Орудний      (ким?): " + результат.О);
Сообщить("Місцевий (на кому?): " + результат.М);
Сообщить("Кличний:             " + результат.К);

Результат:

Родовий     (кого?): Лук'янченка Леоніда Аркадійовича
Давальний   (кому?): Лук'янченку Леоніду Аркадійовичу
Знахідний   (кого?): Лук'янченка Леоніда Аркадійовича
Орудний      (ким?): Лук'янченком Леонідом Аркадійовичем
Місцевий (на кому?): Лук'янченку Леоніді Аркадійовичі
Кличний:             Лук'янченко Леоніде Аркадійовичу

Украинская версия пока лучше всего справляется с фамилиями, именами и отчествами.  Работа над другими типами словосочетаний ведется.

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

Признаки = Новый Массив();
Признаки.Добавить("name");
Признаки.Добавить("feminine");
результат = Морфер.СклонятьРусский("Щукина Ольга Александровна", Признаки);

На данный момент доступны след. признаки: name, feminine, masculine, neuter, animate, inanimate, common, plural.

Функция построения прописи числа в любом падеже

Функция ПрописьРусский (ПрописьУкраинский) решает две родственные задачи: получение прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующим числом (1 попугай, 2 попугая, 5 попугаев). Пример:

// Пример написания денежной суммы прописью в родительном падеже:
пропись = Морфер.ПрописьРусский(235, "рубль");
Сообщить(пропись.n.И + " " + пропись.unit.И);
Сообщить("в размере " + пропись.n.Р + " " + пропись.unit.Р);

Результат:

двести тридцать пять рублей
в размере двухсот тридцати пяти рублей

Функция принимает два аргумента:

n – целое положительное число.

unit – единица измерения – слово или словосочетание в именительном падеже единственного числа: «рубль», «доллар США», «календарный день», «новое письмо» и т.п. Если слово употребляется только во множественном числе, то указывается форма именительного падежа множественного числа: «сутки», «брюки», «ножницы».

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

235 рублей
Двести тридцать пять рублей
235 (двести тридцать пять) рублей и т.п.

Комбинировать имеет смысл только соответствующие падежные формы n и unit – именительный с именительным, родительный с родительным и т.д. Например, для получения фразы "в размере N рублей (долларов, евро...)", берем родительный падеж (Р): в размере + двухсот тридцати пяти + рублей.

Склонение прилагательных по родам

Функция СклонятьПрилагательноеПоРодам склоняет данное ей прилагательное, преобразуя его из мужского рода в женский, средний и во множественное число:

результат = Морфер.СклонятьПрилагательноеПоРодам("уважаемый");
Сообщить("Женский:     " + результат.feminine);
Сообщить("Средний:     " + результат.neuter);
Сообщить("Множ. число: " + результат.plural);

Получим:

Женский: уважаемая
Средний: уважаемое
Множ.число: уважаемые

Авторизация

Для получения доступа к тегам род, откуда, куда, где, а так же снять ограничение на кол-во запросов в сутки, нужно купить подписку на сайте http://morpher.ru/ws3/ И передать токен следующим образом:

Морфер.Авторизация("ваш токен");

Обработка ошибок

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

Ошибка инициализации модуля: МодульУправляемогоПриложения
по причине:
{Обработка.Морфер.МодульОбъекта(138)}: Ошибка: Не найдено русских слов.
        ВызватьИсключение("Ошибка: " + Данные.message);

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

Совместимость и устранение неполадок

Модуль выпускается в двух вариантах для 8.3.16 и 8.2.?. Версии отличаются только тем, что версия 8.3.16 использует встроенный десериализатор JSON.

Оперативное исправление ошибок склонения

Склонение как языковой феномен изобилует неоднозначностями, особенно в области имен собственных.  В городе Москва или в городе Москве?  В республике Корея или в республике Корее?  В Тушино или в Тушине?  Обладатели «диковинных» фамилий часто не любят, чтобы их склоняли.  Скажем, если у человека фамилия Груздь, он будет требовать, чтобы его фамилию не склоняли, часто вопреки правилам русского языка и всеобщему мнению.  Но если он ваш начальник, то неизвестно еще, кто останется Груздём, если вы позволите себе просклонять его в договоре.

Не секрет, что алгоритм автоматического склонения тоже может ошибаться – не знать какого-либо слова или запутаться в сложной синтаксической структуре.  Что делать, если машина склоняет не так, как надо, а документ должен быть на столе у начальника через 10 минут?  Хорошо, если система позволяет вручную исправлять документ после его выдачи.  Но исправлять фамилию начальника в каждом приказе тоже не дело.  Традиционное решение этой проблемы (если руки дойдут до его реализации) – хранение падежных форм в таблице-справочнике, которая заполняется вручную.

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

Страничка исправления ошибок

Установка веб-сервиса в вашей локальной сети

Многие пользователи веб-сервиса высказывали желание иметь «такой же сервис, только у себя», т.е. иметь возможность развернуть веб-сервис в своей локальной сети.  Это решило бы проблему с использованием веб-сервиса на рабочих местах, где нет доступа к Интернету, а также проблему с законом «О защите персональных данных», требующим обеспечения конфиденциальности таких данных.

В ответ на эти пожелания был создан вариант веб-сервиса, допускающий установку на сервере в локальной сети предприятия или непосредственно на машине пользователя, если пользователь один.  Новый продукт получил название «Морфер.Сервер». Он реализует те же функции, что и общедоступный веб-сервис, включая функцию поддержания пользовательского словаря, и работает в сотни раз быстрее из-за того, что локальная сеть быстрее Интернета. 

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

Морфер = Обработки.Морфер.Создать();
Морфер.СменитьСервер("comp001", false);

Здесь comp001 – это сетевое имя компьютера, где установлен веб-сервис. Во второй строчке изменять ничего не нужно.  

Как приобрести и установить у себя локальный веб-сервис, описано на странице продукта: «Морфер.Сервер».

Исходный код модулей.

Исходный код модулей полностью открыт и доступен. https://github.com/morpher-ru/1C.WebService.Client

Альтернативы

Автор «Морфера» занимается вопросом автоматического склонения профессионально с 2003 года и постоянно следит за аналогичными разработками. Одним из заметных аналогов является веб-сервис Яндекс.Склонятор, но он склоняет только «имена, фамилии и ники». Вот список еще нескольких решений, разработанных для платформы 1С:

Дата публикации Название Автор Тип Язык +/-
2002 Падеж. Версия "Крохотулька" Юрия Железнякова SuperJur рус
01.10.2008 Склонение ФИО e.kogan рус +142/-0
27.02.2007 V7NDS: Сервис поддержки склонений ФИО для 1С NDeclin ВК рус +59/-0
21.11.2010 Учим внешнюю компоненту правильному склонению не только ФИО, но и должностей, и подразделений (ЗУП 2.5) director04 ВК + 1С рус +53/-0
06.02.2012 Склонение ФИО и должностей fixin рус +16/-0
16.06.2009 ФИО и должности в винительном и дательном падеже (укр) (Ivon) Ivon укр +16/-0
08.11.2007 Склонение украинских ФИО, должностей и подразделений в семи падежах. DLL с поддержкой OLE. tarasenkov ВК укр +15/-3

 * Количество плюсов и минусов дано на момент публикации.

В «Морфере» учтены многие пожелания к системам подобного рода, а именно:

  1. Возможность бесплатного использования функций склонения – имеется, до 1000 запросов в сутки. Этого количества более чем достаточно для частных лиц и малого бизнеса.  Для более крупных клиентов имеется платный доступ.
  2. Простота развертывания. Не нужно включать в конфигурацию никаких дополнительных библиотек, регистрировать их в реестре и поставлять пользователям. Не нужны права администратора на пользовательских машинах.
  3. Возможность оперативного исправления ошибок. Многие пользователи отмечали как недостаток DLL невозможность оперативного исправления ошибок склонения. Даже в случае с «открытым кодом» на языке 1С, чтобы исправить одну фамилию, разбираться в этом коде (сразу вспоминается «Крохотулька») не у всех программистов найдется время и желание. Веб-сервис решает эту проблему, предоставляя пользователям веб-страницу для оперативного изменения склонения отдельных словосочетаний. Для этого не требуется вмешательства программиста – исправить ошибку сможет любой грамотный пользователь компьютера.
  4. Изменение по числам (просьба). Реализовано.

Кроме того, отличительными особенностями «Морфера» являются:

  1. Простой API: склонение всех типов словосочетаний производится одной функцией. Нет необходимости указывать тип словосочетания (ФИО, должность, подразделение...)
  2. Не требуется указание пола. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому однозначно определяется пол лица.
  3. Высокое качество склонения, достигаемое использованием комбинированного подхода – алгоритмы для кодирования правил и словари для учета исключений. «Морфер» вобрал в себя несколько многотысячных словарей, годы кропотливой работы, учета замечаний и пожеланий пользователей.

Жду новых ваших пожеланий и замечаний. Именно они мотивируют меня развивать продукт дальше.

Скачать файлы

Наименование Файл Версия Размер
Морфер 8.2
.epf 5,63Kb
25.05.17
24
.epf 5,63Kb 24 Скачать
Морфер 8.3.6
.epf 4,99Kb
25.05.17
105
.epf 4,99Kb 105 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Angeros 14.08.12 09:49 Сейчас в теме
Решение сомнительно, както не верится в надежность и 100% стабильность интернета... Как будет склоняться без инета?!
41. Стил 89 27.04.14 11:38 Сейчас в теме
Не работает во внешней печатной форме на платформах выше 8.3.3.
Выдает ошибку
Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL") {(1)}: Ошибка при вызове конструктора (WSОпределения)
2. Лингвист 94 14.08.12 10:02 Сейчас в теме
Может быть, еще и электричество отключим? :) Конечно, без интернета склоняться не будет. В этом ахиллесова пята сервис-ориентированной архитектуры. Но и положительных моментов много - простота (3 строчки кода на стороне клиента), бесплатные автоматические обновления кода и словарной базы, возможность оперативного исправления ошибок. Думайте, решайте, что вам больше подходит.
user774630; Mnemonik; realEvgenius; buganov; +4 Ответить
3. sytkosa 14.08.12 11:49 Сейчас в теме
А какой аптайм сервера где идет склонение. Насколько я помню раньше он часто был не доступен. Как сейчас обстоят в этом дела.
И ещё нагрузочные тесты кто нить проводил с этим сервером. Не ляжет ли он если ему одновременно 1 000 запросов на склонение отправить с разных мест.
И ещё нигде не написано об условиях использования данного сервиса.

А так да склоняет неплохо.
4. Лингвист 94 14.08.12 13:21 Сейчас в теме
Сервер (веб-ферма) находится в Москве, доступен круглосуточно. Изредка (раз в несколько месяцев) хостинг-провайдер проводит профилактику в 2:00 по московскому времени, что занимает несколько минут. С 2007 года сайт был недоступен продолжительное время (8 часов) только один раз, ночью 2.03.2012, в основном по моей вине. Наутро сотрудники провайдера помогли все починить.

Нагрузочное тестирование не проводилось, но у хостинга большой запас по всем параметрам - процессор, память, пропускная способность. При необходимости их можно оперативно увеличить. Будем решать проблемы по мере их поступления. За последние полгода зарегистрировано более 1 млн. запросов, проблем пока не видно.
5. nissal 14.08.12 13:28 Сейчас в теме
В целом очень удачное решение. Ошибка в примере:

"Кличний: Лук'янченке Леоніде Аркадійовиче"

ошибочно, должно быть: Лук'янченко Леоніде Аркадійовичу
6. Лингвист 94 14.08.12 16:08 Сейчас в теме
Спасибо за поправку! На украинском не говорю, изучаю в основном по учебникам.

Исправил через форму исправления ошибок: Лук'янченко Леонід Аркадійович.

При первой возможности исправлю остальные подобные. Спасибо!
7. EarlyBird 6 15.08.12 07:47 Сейчас в теме
К сожалению, данным решением пользоваться не буду, поскольку подключение через веб-сервис - это неоправданное "засвечивание" базы наружу (во внешний интернет).
Любой выход пользователей базы во внешний интернет - это потенциальная угроза информационной безопасности.
Необходимость просклонять чьё-то ФИО не представляется достаточно убедительным оправданием для выхода во внешку.

Однако, особое спасибо за список альтернативных решений!
Нашёл среди них подходящее для себя.
8. Лингвист 94 15.08.12 14:36 Сейчас в теме
Интересное замечание! Да, проблема безопасности веб-сервисов не нова и имеет стандартное решение – защищенное соединение по HTTPS. Будем работать.

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

Но соединение по HTTPS нужно реализовать, Вы правы.
9. Silenser 519 15.08.12 21:22 Сейчас в теме
Поставил +, но не обработке и веб сервису, а технологии склонения в целом. Узнал о Морфере еще пару месяцев назад, очень понравилась точность склонения, но вот выход в Интернет для этих целей считаю неоправданным, тут больше подойдет ваша dll, не подскажете, кстати, сколько стоит, на сайте ничего конкретно не указано.
10. Лингвист 94 16.08.12 01:37 Сейчас в теме
(9) Silenser, спасибо за высокую оценку качества склонения. Я действительно прилагаю к этому много усилий.

Про оправданность "выхода в интернет" с Вами не согласны 149 пользователей, пославших от 50 до 111380 запросов за последний месяц.

Насчет DLL - пишите в личку (не хочу нарушать правила форума).
12. Лингвист 94 16.08.12 14:31 Сейчас в теме
(11) electronik, денег не нужно. Все, что нужно - это 3 строчки кода:

ОпределениеМорфер=Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL");
Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morpher.ru/","WebService","WebServiceSoap");
Сообщить("Дательный (кому?): " + Морфер.GetXml("Генеральный директор").Д);

Если удастся протестировать скорость (оберните последнюю строчку в цикл), напишите результат и в каком городе Вы находитесь.
13. ander_ 17.08.12 09:10 Сейчас в теме
Блин. А ведь здорово. И совсем не обязательно иметь постоянное соединение. Можно сделать какое-нибудь регламентное задание, которое будет время от времени н.р. по ноывм юр.лицам заполнять табличку.
Автору спасибо!
Ушел думать куда прикрутить :).
14. Itilive.ru 21.08.12 15:18 Сейчас в теме
А что со склонением должностей типа
"Руководитель юридической службы"
или
"Заместитель генерального директора по экономике и финансам"
?
К сожалению сам не могу проверить в моменте, т.к. IP клиента заблокирован.
Меня в свое время "уели" с данными формулировками.


Проверил. Все работает. Хитро -отсекать склонение после существительного. ) Круто.
15. Лингвист 94 23.08.12 20:01 Сейчас в теме
82. AlexO 128 28.02.18 15:23 Сейчас в теме
(15) а ничего хитрого.
Нужно сначала якорное существительное определить, которое описывается прилагательным.
16. Лингвист 94 24.08.12 02:58 Сейчас в теме
Кстати, насчет «IP заблокирован». Проблема решается передачей веб-сервису логина и пароля. Дело в том, что некоторые излишне активные IP могут автоматически блокироваться и если ваш внешний IP совпадет с заблокированным, вам не повезет. Идентификация по логину и паролю гарантирует, что веб-сервис вас ни с кем не спутает. Для этого нужно зарегистрироваться и добавить в код две строчки:

Морфер.Пользователь = "user123";
Морфер.Пароль = "password123";

Кроме того, оперативное исправление ошибок работает только для зарегистрированных пользователей, т.к. иначе любой мог бы исправить склонение «Генеральный директор» на «Генеральный Козёл» (или еще что похлеще). Исправления, введенные на странице исправлений без предварительного входа, не влияют на веб-сервис. Рекомендуется зарегистрироваться заранее, т.к. если встретится ошибка, вам захочется поскорее ее исправить, а не править код (возможно, на нескольких рабочих станциях).

Поэтому если вы собираетесь всерьез пользоваться веб-сервисом, крайне рекомендую зарегистрироваться.
18. ponaroshku 22.10.12 07:00 Сейчас в теме
Спасибо за обработку!
Поставила плюс автору
В целом, склоняет неплохо, нареканий нет, кроме... одной фамилии - Горелик, которая не должна склоняться, но система все равно пытается её просклонять... Тут, пожалуй, ничего не поделаешь
Но в целом большой плюс
19. Лингвист 94 22.10.12 15:37 Сейчас в теме
Ponaroshku, как раз в этом случае есть, что поделать: если вам не нравится, как склоняется какое-либо словосочетание, вы можете легко это исправить на странице оперативного исправления ошибок. Подробнее см. выше.

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

Горелик Евгений - фамилия склоняется
Горелик Евгения - не склоняется
Горелик Е. - склоняется в предположении, что Е. - мужское имя.

Спасибо за плюс!
83. AlexO 128 28.02.18 15:25 Сейчас в теме
(19) тогда нужно просто предусмотреть задание такого параметра, как "пол", и передавать его в обработку.
По умолчанию - мужской, а дальше определять уже по исходным данным.
20. _n26__ 15.01.13 15:12 Сейчас в теме
21. silberRus 67 31.01.13 14:00 Сейчас в теме
до конца не прочитал и радостно скачал

а вышло что работает через инет,
не подходит для спрятанных баз, а очень надо (
22. Skromnyi 12 04.06.13 09:03 Сейчас в теме
Сервис 2-ой день недоступен. При заходе на сайт: "HTTP Error 503. The service is unavailable."
23. Лингвист 94 04.06.13 17:39 Сейчас в теме
Всем добрый день!

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

Если для вас критична бесперебойная работа веб-сервиса, имеется возможность приобрести и установить у себя в локальной сети точно такой же веб-сервис. Работать будет на порядок быстрее и надежней. Подробности на сайте:

http://morpher.ru/webservice/local/
24. fr.myha 10.07.13 14:00 Сейчас в теме
Спасибо. А если интернет не подключен?
Делюсь функцией, возвращающая инициалы в дательном падеже =)

// функция в зависимости от переданного параметра возвращает ФИО
//
// Параметры:
// 	ФИО - строка. Если Можно вводить только Фамилию или Фимилия Имя или полное ФИО,
//					разделитель пробел.
//	Пол - Перечисления.Пол 
//	ТипВывода - числа 1: полное ФИО
//					  2: Фамилия И.О. 
//					  3: И.О. Фамилия 
// Возвращаемое значение:
// 	строка - результат форматирования
Функция обДательныйПадежНаСервере(ФИО,Пол,ТипВывода=0) Экспорт
	
	ФИО_Падеж="";
	Фамилия="";
	Имя="";
	Отчество="";
	ФамилияПадеж="";
	ИмяПадеж="";
	ОтчествоПадеж="";
	ФИО=СокрЛП(ФИО);
	Длина=0;
	
	Если СтрЧислоВхождений(ФИО," ") = 0 Тогда
		Фамилия = ФИО;
		Длина = 1;
	ИначеЕсли СтрЧислоВхождений(ФИО," ") = 1 Тогда
		Фамилия = Лев(ФИО,Найти(ФИО," ")-1);
		Имя = СтрЗаменить(ФИО,Фамилия+" ","");
		Длина = 2;
	ИначеЕсли СтрЧислоВхождений(ФИО," ") = 2 Тогда
		Фамилия = Лев(ФИО,Найти(ФИО," ")-1);
		Имя = Лев(СтрЗаменить(ФИО,Фамилия+" ",""),Найти(СтрЗаменить(ФИО,Фамилия+" ","")," ")-1);
		Отчество = СтрЗаменить(СтрЗаменить(ФИО,Фамилия+" ",""),Имя+" ","");
		Длина = 3;
	Иначе
		Сообщение = Новый СообщениеПользователю;
       	Сообщение.Текст = "Предупреждение! Неправильно записано ФИО. Проверьте пробелы!" + Символы.ПС + "(обДательныйПадежНаСервере)";
       	Сообщение.Сообщить();
	КонецЕсли; 
	                                           
	Если (Нрег(Прав(Отчество,1))="ч") Тогда
		ТекПол = Перечисления.Пол.Муж;
	ИначеЕсли (Нрег(Прав(Отчество,1))="а") Тогда
		ТекПол = Перечисления.Пол.Жен;
	КонецЕсли;
	
	Если ТекПол = Перечисления.Пол.Муж Тогда
		КонецФамилии = Прав(Фамилия,1);
		Если Нрег(КонецФамилии)="е"
			ИЛИ Нрег(КонецФамилии) = "и"
			ИЛИ Нрег(КонецФамилии) = "о"
			ИЛИ Нрег(КонецФамилии) = "у"
			ИЛИ Нрег(КонецФамилии) = "э"
			ИЛИ Нрег(КонецФамилии) = "ю"
			Тогда
			ФамилияПадеж = Фамилия;
		ИначеЕсли Нрег(КонецФамилии) = "я" Тогда
			ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "е";
		ИначеЕсли Нрег(КонецФамилии) = "а" Тогда
			ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "е";
		ИначеЕсли Нрег(КонецФамилии) = "й"
				ИЛИ Нрег(КонецФамилии) = "ь"
				Тогда
				Если Нрег(Прав(Фамилия,2)) = "ий"
					ИЛИ Нрег(Прав(Фамилия,2)) = "ый"
					Тогда
						ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-2) + "ому";
			Иначе
				ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "ю";
			КонецЕсли
		Иначе
			Если Нрег(Прав(Фамилия,2)) = "ец" Тогда
				ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-2) + "цу";
			Иначе
				ФамилияПадеж = Фамилия + "у";
			КонецЕсли
		КонецЕсли;
		
		Если Имя = "Лев" Тогда
			ИмяПадеж = "Льву";
		ИначеЕсли Имя="Павел" Тогда
			ИмяПадеж = "Павлу";
		ИначеЕсли Имя = "Пётр" Тогда
			ИмяПадеж = "Петру";
		ИначеЕсли Нрег(Прав(Имя,1)) = "й"
			ИЛИ Нрег(Прав(Имя,1)) = "ь"
			Тогда
				ИмяПадеж = Лев(Имя,СтрДлина(Имя)-1) + "ю";
		ИначеЕсли Нрег(Прав(Имя,1)) = "и" Тогда
			ИмяПадеж = Имя;
		ИначеЕсли Нрег(Прав(Имя,1)) = "а" Тогда
			ИмяПадеж = Лев(Имя,СтрДлина(Имя)-1) + "е";
		Иначе
			ИмяПадеж = Имя + "у";
		КонецЕсли;
		ОтчествоПадеж = Отчество + "у";
	ИначеЕсли ТекПол = Перечисления.Пол.Жен Тогда
		КонецФамилии = Прав(Фамилия,1);
		
		Если Нрег(КонецФамилии) = "а" Тогда
			Если Нрег(Прав(Фамилия,3)) = "ова"
				ИЛИ Нрег(Прав(Фамилия,3))="ева"
				Тогда 
					ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "ой";
			Иначе
				ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "е";
			КонецЕсли
		ИначеЕсли Нрег(КонецФамилии) = "я" Тогда
			Если Нрег(Прав(Фамилия,2)) = "ая" Тогда 
				ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-2) + "ой";
			Иначе
				ФамилияПадеж = Лев(Фамилия,СтрДлина(Фамилия)-1) + "е";
			КонецЕсли	
		Иначе
			ФамилияПадеж = Фамилия;
		КонецЕсли;
		
		Если Нрег(Прав(Имя,1)) = "а" Тогда
			ИмяПадеж = Лев(Имя,СтрДлина(Имя)-1) + "е";
		ИначеЕсли Нрег(Прав(Имя,1)) = "я" Тогда
			Если Нрег(Прав(Имя,2)) = "ия" Тогда
				ИмяПадеж = Лев(Имя,СтрДлина(Имя)-1) + "и";
			Иначе	
				ИмяПадеж = Лев(Имя,СтрДлина(Имя)-1) + "е";
			КонецЕсли
		Иначе
			ИмяПадеж = Имя;
		КонецЕсли;
		ОтчествоПадеж = Лев(Отчество,СтрДлина(Отчество)-1) + "е";
	Иначе
		Сообщение = Новый СообщениеПользователю;
       	Сообщение.Текст = "Предупреждение! Неправильно задан Пол. Проверьте!" + Символы.ПС + "(обДательныйПадежНаСервере)";
       	Сообщение.Сообщить();
	КонецЕсли;
	
	Если Длина = 1 Тогда
		ФИО_Падеж = "" + ФамилияПадеж;
	ИначеЕсли Длина = 2 Тогда
		Если ТипВывода = 1 Тогда
			ФИО_Падеж = "" + ИмяПадеж + " " + ФамилияПадеж;
		ИначеЕсли ТипВывода = 2 Тогда
			ФИО_Падеж = "" + ФамилияПадеж + " " + Лев(ИмяПадеж,1) + ".";
		ИначеЕсли ТипВывода = 3 Тогда
			ФИО_Падеж = "" + Лев(ИмяПадеж,1) + "." + " " + ФамилияПадеж;
		Иначе
			ФИО_Падеж = "" + ФамилияПадеж + " " + ИмяПадеж;
		КонецЕсли
	ИначеЕсли Длина = 3 Тогда
		Если ТипВывода = 1 Тогда
			ФИО_Падеж = "" + ИмяПадеж + " " + ОтчествоПадеж + " " + ФамилияПадеж;
		ИначеЕсли ТипВывода = 2 Тогда
			ФИО_Падеж = "" + ФамилияПадеж + " " + Лев(ИмяПадеж,1) + "." + " " + Лев(ОтчествоПадеж,1) + ".";
		ИначеЕсли ТипВывода=3 Тогда
			ФИО_Падеж = "" + Лев(ИмяПадеж,1) + "." + " " + Лев(ОтчествоПадеж,1) + "." + " " + ФамилияПадеж;
		Иначе
			ФИО_Падеж = "" + ФамилияПадеж + " " + ИмяПадеж + " " + ОтчествоПадеж;
		КонецЕсли
	Иначе
		Сообщение = Новый СообщениеПользователю;
       	Сообщение.Текст = "Предупреждение! Это не ФИО. Проверьте!" + Символы.ПС + "(обДательныйПадежНаСервере)";
       	Сообщение.Сообщить();
	КонецЕсли;
	Возврат ФИО_Падеж;
КонецФункции
Показать
25. DennyPhilord 23.07.13 11:05 Сейчас в теме
что за ошибка?

по причине:
При создании описания сервиса произошла ошибка.
по причине:
Ошибка доступа к файлу 'http://morpher.ru/WebService.asmx?WSDL'
по причине:
Ошибка работы с Интернет: Couldn't connect to server
26. Лингвист 94 24.07.13 21:24 Сейчас в теме
Сервис был сегодня недоступен в течение нескольких часов. Пул приложений самопроизвольно перешел в состояние "остановлен". Причину сейчас выясняем с сотрудниками хостинга. Сейчас сервис работает.
27. Лингвист 94 24.07.13 21:28 Сейчас в теме
У всего есть и положительная сторона. Ни одно отключение сервиса не проходит незамеченным - значит, сервис востребован :)
28. militskis 16 14.10.13 17:19 Сейчас в теме
Опять сервис недоступен....503 ошибка
29. Лингвист 94 15.10.13 22:26 Сейчас в теме
Да, таинственные зависания пула приложений продолжаются. Внешний мониторинг у меня настроен, но на этот раз я был в длительном перелете, поэтому не сразу среагировал. Ответы поддержки хостинга неутешительны. Причину зависания они не знают, предполагают, что превышение лимита оперативной памяти. С моей точки зрения это не повод вешать IIS, но у них другое мнение. Настроить автоматический перезапуск пула "нет технической возможности". Увеличил в 2 раза лимит оперативки за 3-кратное повышение цены за хостинг. Если не поможет, будем искать другого провайдера. Держу руку на пульсе, а пальцы крестиком.
30. Лингвист 94 03.11.13 12:12 Сейчас в теме
Проблема решилась, хотя и ценой трехкратного повышения платы за хостинг. С тех пор самопроизвольные отключения сервиса прекратились. Пользуйтесь на здоровье.
31. rasswet 82 06.11.13 09:06 Сейчас в теме
когда на сайте вашем нажимаю "продукты" падает в http://morpher.ru/Error404.aspx?aspxerrorpath=/install.aspx#products "Страница не найдена"

32. Лингвист 94 06.11.13 12:22 Сейчас в теме
Да, я в курсе этой проблемы. Слетели настройки IIS и я не могу их поправить извне. Решаем сейчас эту проблему с сотрудниками хостинга. Веб-сервис работает нормально.
33. Лингвист 94 07.11.13 16:20 Сейчас в теме
Работоспособность сайта полностью восстановлена.
34. artfa 48 13.03.14 10:46 Сейчас в теме
для денежных сумм не годится,
на
пропись = Морфер.Propis(235.45, "рубль");
Сообщить(пропись.n.И + " " + пропись.unit.И);
Сообщить("в размере " + пропись.n.Р + " " + пропись.unit.Р);

выдал: в размере двухсот тридцати пяти целых сорока пяти сотых рубля
85. AlexO 128 28.02.18 15:36 Сейчас в теме
(34) и не только )
Если это тот же сервис, к которому и 1С подключается - то по фамилиям и должностям тоже постоянно ошибается:
например, "Руденко Валерия" может превратить в "Валерию" ))
35. dimkateo 53 13.03.14 14:59 Сейчас в теме
прикрутил к печати коммерческих предложений из торговой базы (УТ 10.3)... через десяток-другой выданных КП сервер морфера начинает подолгу обрабатывать запросы... иногда секунд по 10-15 приходится ждать... а на следующий день с утра - опять всё нормально.
36. Lexaero 16.04.14 12:49 Сейчас в теме
При использовании вот с таким определением:
ОпределениеМорфер=Новый WSОпределения("http://morfer.ru/WebService.asmx?WSDL");
Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morfer.ru/","WebService","WebServiceSoap");


Вылетает: Ошибка при вызове конструктора (WSПрокси): Сервис не найден. {http://morpher.ru/}:WebService: Сервис не найден. {http://morpher.ru/}:WebService

Снова сервис недоступен?
З.Ы. Сайт доступен
39. Лингвист 94 16.04.14 14:25 Сейчас в теме
(36) Кстати, у вас в коде два раза фигурирует morfer.ru. Должно быть morpher.ru.
40. Lexaero 17.04.14 10:25 Сейчас в теме
(39) да, я пробовал по разным адресам подключиться, привел тестовый код. В ошибке выскакивает morpher.ru.
Спасибо за оперативное исправление! Замечательный сервис!
37. Лингвист 94 16.04.14 13:47 Сейчас в теме
Да, ошибку воспроизвел. Очень странно. Не работают только SOAP-клиенты, в т.ч. 1С. Разбираюсь.
38. Лингвист 94 16.04.14 14:21 Сейчас в теме
Работоспособность восстановлена путем отката последних изменений. Сейчас выясняю, какое из них было причиной. Вероятно, добавление к проекту ссылки на библиотеку BotDetect.dll.
42. Лингвист 94 27.04.14 13:23 Сейчас в теме
А еще какие-нибудь подробности есть в сообщении об ошибке? Код ошибки? Ошибка возникает каждый раз или непостоянно? К сожалению, у меня сейчас под рукой нет 8.3.3, а в 8.2 все работает нормально - только что проверил. Если нужна помощь, пишите в личку на contact@morpher.ru.
43. Стил 89 01.05.14 08:59 Сейчас в теме
(42) Всё это рабочее. Не работает только в подключаемых внешних печатный формах на платформе 8.3 (кроме 8.3.1).
Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL") в этом случае выдает ошибку. Считаю это ошибкой платформы.
http://morpher.ru точно не причем
46. Brawler 468 05.05.14 22:00 Сейчас в теме
(43) Стил, ошибка не такая случаем?

Ошибка при вызове конструктора (WSОпределения)
	ОпределениеМорфер=Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL");
по причине:
Установлен безопасный режим. Выполнение операции запрещено


Лечится отменой безопасного режима, ну примерно так.

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.3.1");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "0.1";
	ПараметрыРегистрации.БезопасныйРежим = Ложь; // ВОТ ТУТА!!!
	ПараметрыРегистрации.Наименование = ЭтотОбъект.Метаданные().Представление();
	ПараметрыРегистрации.Информация = "<...>";
    
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = ЭтотОбъект.Метаданные().Представление();
	НоваяКоманда.Идентификатор = "1";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Истина;
    
	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать


Проверено вот это
&НаСервере
Процедура Команда1НаСервере()
	ОпределениеМорфер=Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL");
	Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morpher.ru/","WebService","WebServiceSoap");
		
	результат = Морфер.GetXml("Генеральный директор");
		
	Сообщить("Родительный (кого?): " + результат.Р);
	Сообщить("Дательный   (кому?): " + результат.Д);
	Сообщить("Винительный (кого?): " + результат.В);
	Сообщить("Творительный (кем?): " + результат.Т);
	Сообщить("Предложный (о ком?): " + результат.П_о);
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры
Показать


Подтверждаю работоспособность на 8.3.5, на версиях ниже тестировать не хочется.
47. Стил 89 10.05.14 04:44 Сейчас в теме
(46) Brawler, Ошибка эта, только у меня не указывается причина.
Ваш вариант не помог.
По вашему коду видно, что эти процедуры находятся в модуле формы. В модуле формы то как раз всё нормально. Везде всё нормально, когда код исполняется на сервере, кроме внешней печатной формы, где все процедуры находятся в модуле объекта и нет никаких вызовов с клиента.
Прилагаю обработки:
Договор - закомментировал всё, кроме WS, для проверки лишнее не нужно.
Тестирование ВПФ - с ее помощью можно протестировать код, не создавая форму в обработке "Договор". Именно так код отрабатывает, когда стандартными средствами подключаешь обработку к базе.

Как только в обработке тестирования выберете договор сразу же выскочит ошибка. Пройдясь отладчиком убедитесь, что код исполняется на сервере, но всё равно выдает ошибку.
44. Лингвист 94 02.05.14 19:57 Сейчас в теме
Посмотрите, не блокирует ли Windows Firewall новую версию 1С?
45. Стил 89 04.05.14 22:06 Сейчас в теме
(44) тогда бы не работало везде, а не работает именно во внешних печатных формах
48. Lexaero 22.05.14 11:53 Сейчас в теме
49. Лингвист 94 22.05.14 16:26 Сейчас в теме
Да, запросов уже больше миллиона в неделю, ресурсы текущего хостинга похоже исчерпаны. Сейчас работоспособность восстановлена. Скоро займусь созданием альтернативного веб-сервиса для платных пользователей.
50. Лингвист 94 29.05.14 12:35 Сейчас в теме
Веб-сервис скопирован на новый домен, morphapi.ru. Чтобы начать пользоваться этой копией веб-сервиса, замените в коде домен morpher.ru на morphapi.ru (только в первой строчке, во второй не надо):

	ОпределениеМорфер=Новый WSОпределения("http://morphapi.ru/WebService.asmx?WSDL");
	Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morpher.ru/","WebService","WebServiceSoap");


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

Какое-то время (порядка месяца) доступны будут оба сервиса и в случае падения одного можно будет переключаться на другой. После обкатки нового сервиса старый, возможно, закроется, о чем предупрежу дополнительно.
51. Sasha255n 11.07.14 11:54 Сейчас в теме
Скажите а в 8.1 заработает?
52. Sasha255n 11.07.14 11:55 Сейчас в теме
53. Лингвист 94 11.07.14 12:15 Сейчас в теме
(52) Sasha255n, попробуйте, пожалуйста, если у вас 8.1 под рукой.
54. atroxa 5 17.06.15 10:15 Сейчас в теме
Вчера выявили что не работает Сервис не найден.{http://morpher.ru/}:WebService
Ошибка при вызове конструктора (WSПрокси)

В чём может быть причина?
55. Лингвист 94 20.06.15 12:21 Сейчас в теме
(54) atroxa, за последнюю неделю аптайм сервиса составил 99.92%, за последний месяц - 99.81, как видно из статистики: http://morpher.ru/WebServices/Stats.aspx Т.е. есть вероятность (0,2%), что вы просто попали на период даунтайма. Обычно он длится не около получаса и работоспособность восстанавливается сама (какие-то неполадки на хостинге). Если ошибка все еще повторяется, приведите ваш код.
56. 1Стажер 10.09.15 19:00 Сейчас в теме
57. Лингвист 94 10.09.15 23:50 Сейчас в теме
58. mikele_bes 7 08.12.15 15:07 Сейчас в теме
сервис хорош, спасибо

p.s.:
попробуйте просклонять Уборщица Онищук Света
59. Лингвист 94 09.12.15 02:06 Сейчас в теме
(58) mikele_bes, должности и ФИО нужно склонять отдельно, как сказано в разделе "Ограничения".
60. daMaster 221 10.12.15 15:40 Сейчас в теме
опять не работает ваш сервис, причем уже долго ((
61. Лингвист 94 11.12.15 01:13 Сейчас в теме
А как именно не работает? Что выдает? В логах мониторинга за последние сутки сбоев не зарегистрировано.
63. Lexaero 08.02.16 13:49 Сейчас в теме
А как сейчас обстоят дела с сервисом? живой?
64. Lexaero 08.02.16 14:13 Сейчас в теме
Ошибка при вызове метода контекста (GetXml): Ошибка вызова операции сервиса: {http://morpher.ru/}:WebService:GetXml(): Ошибка SOAP сервера: Server was unable to process request. ---> Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> The wait operation timed out
65. Лингвист 94 09.02.16 01:10 Сейчас в теме
Живой. Сегодня штормило его, правда. Но теперь все в порядке.
66. e2_shmidt 12.02.16 00:30 Сейчас в теме
(65) Подскажите, что в Ваших словах значит "штормило"? Я сейчас с этим сервисом работаю. Возникли вопросы. Вообще, обращение к веб-сервису встроено в последние релизы 1С:Документооборот КОРП 2.0, но я оттуда переносил его в более ранний релиз. И получается так, что я сижу, вечером или ночью тестирую - всё работает. Прихожу к заказчику показывать - вылетает ошибка из сообщения 64. Весьма непрезентабельно. Это и есть "штормило"? Это временное явление? Просто неудачное время выбрал для показа, наверное.
Если кому интересно, то в том же ДО КОРП 2.0 есть классный механизм. Когда с сервиса получается структура склонения, то, если склоняются наименования объектов, то вся структура сразу сохраняется в регистр и потом уже тянется из регистра. Актуально для пользователей, физ.лиц, должностей и контактных лиц. Но вот как раз проблема в дневное время возникала при склонении должностей контактных лиц, а это просто строковые поля. Поэтому шло обращение и возникала ошибка. Сделал должность в Контактных лицах тоже ссылкой на справочник Должности, тогда и по этому полю достаточно будет всего один раз просклонять. Даже думал сделать такой запрос при создании объекта, а не когда идет подготовка важного документа в оперативном режиме.
Лингвист, подскажите, насколько эта ошибка серьезна? Стоит ли приобретать отдельную библиотеку для 1С?
Хотя, версия с прописью числительных довольно дорого стоит, поэтому придется, в любом случае, сервисом пользоваться. По прописи числительных тоже такие косяки в рабочее время возникают? Хотелось бы узнать, насколько стабильно работает.
67. platon_ 10 16.08.16 16:25 Сейчас в теме
68. TeMochkiN 21.09.16 13:55 Сейчас в теме
Жаль, что определение рода по ФИО недоступно в бесплатном режиме. Мне только этот функционал и нужен был.
69. daMaster 221 19.10.16 12:54 Сейчас в теме
(68) TeMochkiN, определение рода по ФИО есть в моем бесплатном алгоритме
http://infostart.ru/public/330103/
70. happyden 24 17.08.17 16:23 Сейчас в теме
Автора с форматом 3.0 унесло далеко в облака... вернулись на внешнюю компоненту
71. sp18s 25.08.17 11:52 Сейчас в теме
Сделал тест, почему для именительного пусто? Пусть возвращает что надо.
72. Denis_Viktorovich 144 08.09.17 08:03 Сейчас в теме
Упал сервис, ОпределениеМорфер=Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL");
Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morpher.ru/","WebService","WebServiceSoap");

Починят или нет?
Прикрепленные файлы:
73. vdpo_kaluga_ito 08.09.17 14:40 Сейчас в теме
(72) Появилась аналогичная проблема 08.09.17, до этого все было нормально ...
74. Denis_Viktorovich 144 11.09.17 13:27 Сейчас в теме
(73)
&НаСервере
Процедура Команда2НаСервере()
	// default init
	Токен = null;
	Число = 36;
	ЕдиницаИзмерения = "день";
	АдресСервера = "ws3.morpher.ru";
	Соединение = Новый HTTPСоединение(АдресСервера,,,,,, Новый ЗащищенноеСоединениеOpenSSL());
	ТекстЗапроса = "/russian/spell?n=" + число + "&unit=" + ЕдиницаИзмерения;
	Если Токен <> null Тогда
		ТекстЗапроса = ТекстЗапроса + "&token=" + Токен;
	КонецЕсли;
	
	Заголовок_ = Новый Соответствие;
	Заголовок_.Вставить("Accept", "application/json");	

	Запрос = Новый HTTPЗапрос(ТекстЗапроса);	
	Запрос.Заголовки = Заголовок_;
	
	Ответ = Соединение.Получить(Запрос);
	Данные = ПолучитьДанныеИзОтвета(Ответ);
	Сообщить(" "+Данные.n.Р+ " "+Данные.unit.Р);	
	
КонецПроцедуры

&НаКлиенте
Процедура Команда2(Команда)
	Команда2НаСервере();
КонецПроцедуры

Функция ПолучитьДанныеИзОтвета(Ответ)
 	ОтветСтрокой = Ответ.ПолучитьТелоКакСтроку();
	
	Чтение = Новый ЧтениеJson();
	Чтение.УстановитьСтроку(ОтветСтрокой);
	
	Если Ответ.КодСостояния = 200 Тогда
		Данные = ПрочитатьJSON(Чтение, ложь);
	    Возврат Данные;
	ИначеЕсли Ответ.КодСостояния = 400 тогда
		Данные = ПрочитатьJSON(Чтение, ложь);
		ВызватьИсключение("Ошибка: " + Данные.message);
	Иначе
		ВызватьИсключение("HTTP ошибка: " + Ответ.КодСостояния);
	КонецЕсли;		
КонецФункции
Показать

вот так работает из обработки автора взят код
Gobbledegook; +1 Ответить
75. vdpo_kaluga_ito 12.09.17 09:49 Сейчас в теме
(74)
ресСервера = "ws3.morpher.ru"; Соединение = Новый HTTPСоединение(АдресСервера,,,,,, Новый

Однако как все сложно :( То 3 строки было для инициализации, а теперь воночё ...
76. Cat43r 10 11.02.18 22:51 Сейчас в теме
Перестал работать веб-сервис. Это временная проблема?
77. Лингвист 94 12.02.18 09:14 Сейчас в теме
Да, временная. Сейчас сервис работает в штатном режиме.
78. Soft-unity 20.02.18 22:46 Сейчас в теме
(77) При склонении ФИО - отрабатывает, а при склонении должно сти пишет, что сервис недоступен и выдает ошибку
Ошибка при вызове сервиса склонения. Обратитесь к администратору. Техническая информация: http://morpher.ru/WebService.asmx?WSDL {РегистрСведений.КэшПрограммныхИнтерфейсов.МодульМенеджера(498)}: Не удалось получить файл описания web-сервиса по причине: Не удалось получить WS-определения для сохранения в кэше: Неверный формат. http://morphapi.ru/WebService.asmx?WSDL {РегистрСведений.КэшПрограммныхИнтерфейсов.МодульМенеджера(498)}: Не удалось получить файл описания web-сервиса по причине: Не удалось получить WS-определения для сохранения в кэше: Неверный формат.
79. Лингвист 94 20.02.18 23:41 Сейчас в теме
Добрый день! Сервис http://morphapi.ru/WebService.asmx уже давно не работает. Новая версия расположена по адресу https://ws3.morpher.ru. Статья обновлена и содержит актуальную инструкцию по подключению к сервису. Почему у вас работает склонение ФИО, я не знаю, но скорее всего оно не использует сервис или использует актуальную версию.
80. mnemchinov 99 28.02.18 07:26 Сейчас в теме
Севис (ws3.morpher.ru) опять лежит.
TeMochkiN; +1 Ответить
81. mnemchinov 99 28.02.18 14:09 Сейчас в теме
Поработал и лег опять... хм...
84. AlexO 128 28.02.18 15:28 Сейчас в теме
Не знаю, как у вас, но штатный, вроде, тоже к morpher.ru обращается, так вот, там - масса ошибок даже в элементарных фамилиях: путает род и падеж, из-за чего окончания составных частей "фразы" - кто в лес, кто по дрова.
Это еще с украинскими фамилиями не работаем ))
86. evg_m 9 19.03.18 23:15 Сейчас в теме
У меня при вставке кода вот такая ошибка(((( База серверная.
Подскажите что нужно исправить?{ВнешняяОбработка.ФормаПечатиДоговоров.Форма.Форма.Форма(503)}: Ошибка: The request is invalid.
ВызватьИсключение("Ошибка: " + Данные.message);
87. Лингвист 94 27.03.18 00:49 Сейчас в теме
(86) evg K, у вас получилось вызвать сервис? Можете посмотреть, какой запрос посылается, например, при помощи Fiddler?
88. Lexaero 30.05.18 08:56 Сейчас в теме
89. Лингвист 94 30.05.18 09:49 Сейчас в теме
Да, работаем над исправлением ситуации.
90. Лингвист 94 30.05.18 10:01 Сейчас в теме
91. TeMochkiN 26.07.18 14:08 Сейчас в теме
Здравствуйте! У меня возникла ошибка HTTP 402
Это что значит? Израсходовали бесплатный лимит запросов?
Являюсь зарегистрированным пользователем по бесплатной подписке.
Все запросы выполняются с токеном.
92. TeMochkiN 26.07.18 14:10 Сейчас в теме
а, да, точно, нашел у вас на сайте информацию об ошибках
93. Лингвист 94 26.07.18 15:41 Сейчас в теме
Да, 402 - это "Превышен лимит на количество запросов в сутки." Коды ошибок: http://morpher.ru/ws3/#errors
94. missprime 02.08.18 09:12 Сейчас в теме
Подскажите на сегодняшний день есть веб сервис по казахскому языку для 1С ?
Лингвист; +1 Ответить
100. Лингвист 94 10.09.18 11:58 Сейчас в теме
(94) Пока нет, но планируется. Я напишу сюда, когда будет.
95. Lexaero 14.08.18 10:44 Сейчас в теме
Добрый день! Ошибка 500 это сбой?
99. Лингвист 94 10.09.18 11:55 Сейчас в теме
96. realEvgenius 03.09.18 06:52 Сейчас в теме
Здравствуйте!

Инициализирую вот так:
ОпределениеМорфер = Новый WSОпределения("https://ws3.morpher.ru/WebService.asmx?WSDL");
Морфер = Новый WSПрокси(ОпределениеМорфер,"https://ws3.morpher.ru","WebService","WebServiceSoap");

Год назад работало...

Сейчас ошибка:
Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. URL сервиса: https://ws3.morpher.ru/WebService.asmx?WSDL
Код ответа сервера: 404

Что-то делаю не так или сервис умер?
98. Лингвист 94 10.09.18 11:54 Сейчас в теме
(96) Была прекращена поддержка SOAP. Теперь для интеграции с 1С нужно использовать новый код, приведенный в начале статьи.
101. realEvgenius 21.09.18 10:27 Сейчас в теме
(98)
Кода в начале статьи не увидел... Или не туда смотрю.
Можете сюда написать?

Директор хочет купить, зарегистрировать, оплатить пользователя, но просит поглядеть, как работает предварительно
102. Лингвист 94 21.09.18 12:03 Сейчас в теме
(101)
В самом верху этой страницы есть кнопка "Перейти к публикации", которая ведет на статью.
103. realEvgenius 21.09.18 13:07 Сейчас в теме
(102)

Быстрый старт: склонение должности
Программа для склонения должности будет выглядеть так:

Морфер = Обработки.Морфер.Создать();
Результат = Морфер.СклонятьРусский("Генеральный директор");

Сообщить("Родительный (кого?): " + Результат.Р);
Сообщить("Дательный (кому?): " + Результат.Д);
Сообщить("Винительный (кого?): " + Результат.В);
Сообщить("Творительный (кем?): " + Результат.Т);

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


Вот это?

Где взять Обработки.Морфер ?
Скачать ниже за 1500 руб?
Оставьте свое сообщение

См. также

Безопасная работа с транзакциями во встроенном языке Промо

Практика программирования v8 1cv8.cf Абонемент ($m)

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    27958    9    tormozit    44    

Краткое руководство по внесению изменений в конфигурацию

Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.01.2020    12794    16    sapervodichka    41    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

07.10.2019    24308    12    HostHost    40    

Описание формата внутреннего представления данных 1С в контексте обмена данными

Практика программирования Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

06.09.2019    15196    10    Dementor    29    

Вам нравятся запросы в 1С? Промо

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Абонемент ($m)

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

1 стартмани

03.07.2019    16386    4    m-rv    86    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    18129    19    Stepa86    44    

Процедура ПриКомпоновкеРезультата

Практика программирования v8 1cv8.cf Абонемент ($m)

Коллекция кода

1 стартмани

26.07.2019    28414    12    vasilev2015    57    

1С:Ассемблер. Немного летнего веселья!

Практика программирования Разработка v8 1cv8.cf Абонемент ($m)

Все вы, наверное, слышали, что 1С-ники жалуются на свою систему, считая язык 1С недостаточно низкоуровневым, скучным и т.п. Все они с тоской поглядывают в сторону "настоящих" языков программирования. Так вот, господа, они неправы. В системе 1С есть места, где можно размять программерский мозг и получить удовольствие от низкоуровневой техники. Предлагаю вам погрузиться в недра виртуальной машины 1С и понять, как она работает. Там есть свой "ассемблер" и мы попробуем его в действии!

1 стартмани

21.06.2019    23405    73    Evil Beaver    117    

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") Промо

Практика программирования v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    26498    86    m-rv    57    

Простые примеры сложных отчетов на СКД

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Подписи в отчете. Особенности соединения наборов: как соединить несоединяемое. Остатки на дату и обороты по месяцам в одном отчете. Курс валюты на каждую дату без группировок и соединений в запросе. Отчет с произвольными колонками и с произвольной последовательностью. "Неадекватный отчет".

1 стартмани

12.06.2019    24674    18    Hatson    22    

Баг или фича? Неожиданное поведение платформы

Практика программирования Тестирование и исправление Разработка v8 1cv8.cf Абонемент ($m)

Рассмотрим несколько случаев неожиданного поведения платформы 1С, а также что с этим можно cделать.

18.02.2019    19764    0    YPermitin    89    

HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX

Универсальные обработки Практика программирования Разработка v8 1cv8.cf Абонемент ($m)

Тестируем возможности HTML в новой версии 8.3.14 платформы на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX.

1 стартмани

29.01.2019    24248    84    Synoecium    46    

Заполняем по шаблону (по умолчанию) Промо

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2018    23893    19    mvxyz    17    

Отладка сложных отчетов на СКД

Практика программирования v8 v8::СКД 1cv8.cf Россия Абонемент ($m)

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

1 стартмани

28.12.2018    23004    83    maxx    58    

Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере"

Практика программирования v8 1cv8.cf Абонемент ($m)

Практический пример реализации простого http-сервиса средствами 1С Предприятие 8.3. Обеспечивает просмотр списка товаров и просмотр данных товара в браузере.

1 стартмани

07.12.2018    19694    14    dmitry1975    31    

Использование подсистемы БСП "Заполнение объектов"

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Применение механизмов БСП для добавления новых команд заполнения к формам различных объектов. Использование расширений конфигурации для доработки. Шаблоны для реализации собственных команд заполнения.

1 стартмани

23.11.2018    22094    12    ids79    23    

Нечеткий поиск одним запросом Промо

Практика программирования v8 1cv8.cf Абонемент ($m)

Использование механизма полнотекстового поиска в 1С не всегда оправдано, т.к. построение индекса и поддержание его в актуальном состоянии может значительно нагружать систему. Предлагаемая реализация нечеткого поиска методом N-грамм выполняется одним запросом, что позволяет производить поиск в любой таблице и не требует предварительного построения индекса.

1 стартмани

28.12.2015    23575    61    vasvl123    9    

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    28287    45    dsdred    13    

HTTP Сервисы: Путь к своему сервису. Часть 1

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    67747    22    dsdred    24    

Полезные примеры составления схемы компоновки данных #2

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Еще один набор примеров как решить частные задачи в СКД

1 стартмани

22.05.2018    26225    11    SITR-utyos    13    

Работа с публикациями "Инфостарт" Промо

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    16871    12    RocKeR_13    16    

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    39195    33    dsdred    36    

Работа со схемой запроса

Инструментарий разработчика Практика программирования v8 v8::Запросы Абонемент ($m)

Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, - лучше воспользоваться объектной моделью запроса и использовать объект "Схема запроса". В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом "Схема запроса".

1 стартмани

24.04.2018    39232    81    kalyaka    34    

Асинхронная запись и чтение файла без использования модальных методов и временных файлов

Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

10.04.2018    25177    19    Alxby    23    

Как выполнить отчет на СКД через COM и получить данные отчета? Промо

Практика программирования v8 УПП1 Россия Абонемент ($m)

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

2 стартмани

08.05.2018    24247    8    wowik    3    

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов

Практика программирования v8 1cv8.cf Абонемент ($m)

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    31787    54    rpgshnik    48    

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула

Печатные формы документов Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    34189    27    agent00mouse    0    

Практика доступа в базу 1С через протокол oData. Чтение данных

Сервисные утилиты Практика программирования Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

Для чего нужен доступ в базу 1С через REST-интерфейс по протокол oData? Как его организовать? Как не будучи гуру в JavaScript и .NET получить быстрый визуальный доступ к данным базы 1С? Попробую дать ответ на эти вопросы и прокомментирую некоторые нюансы, с которыми я столкнулся.

1 стартмани

11.12.2017    82283    291    Dementor    44    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции Промо

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    24002    25    informa1555    26    

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Практика программирования Универсальные печатные формы v8 БП3.0 Абонемент ($m)

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    23872    49    kwazi    6    

Простой бесплатный DashBoard с помощью http сервиса

Практика программирования v8 Абонемент ($m)

Как создать свой DashBoard без дополнительных затрат и сложных технических доработок.

1 стартмани

25.11.2017    50676    62    dewersia    32    

Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

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

1 стартмани

24.09.2017    38410    15    vandalsvq    80    

1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут Промо

Практика программирования v8 Абонемент ($m)

Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании

1 стартмани

14.08.2016    43752    36    Demanoidos    60    

Telegram-боты

Практика программирования v8 Абонемент ($m)

Описание теории, разбор архитектуры и пример реализации telegram-ботов. Сразу скажу, со структурированием изложения мало что могу поделать. :) редакция от 18.07.2018 Правки последней редакции выделены жирным.

1 стартмани

01.09.2017    27572    125    PLAstic    52    

Макеты СКД

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

25.07.2017    87123    121    json    27    

Расширения конфигураций 1С: учимся перехватывать методы

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

30.05.2017    110711    13    signum2009    45    

Как нарисовать граф на 1С Промо

Практика программирования v8 Абонемент ($m)

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

1 стартмани

09.08.2013    67911    205    ildarovich    117    

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов

Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Абонемент ($m)

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

26.05.2017    45657    15    DarkAn    86    

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.03.2017    27545    110    romasna    49    

Разбираемся с механизмом Дополнительные отчеты и обработки в БСП

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Чуть более комплексное описание, чем на других ресурсах

1 стартмани

30.10.2016    133950    914    json    65    

Работа с данными выбора Промо

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    36304    17    kalyaka    16    

Несколько шаблонов для доработки типовых конфигураций

Практика программирования Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы

1 стартмани

03.10.2016    33248    95    json    25    

Хранение файлов в томах на диске (для УПП 1.3)

Практика программирования v8 УПП1 Абонемент ($m)

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

2 стартмани

05.06.2016    51621    7    wowik    29    

БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)

Инструментарий разработчика Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

1 стартмани

18.05.2016    55112    159    rozer    64    

Быстрое определение интервалов в запросе Промо

Практика программирования v8 Абонемент ($m)

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

1 стартмани

01.10.2015    46783    32    ildarovich    41    

Остатки на каждый день в запросе

Практика программирования Учет ТМЦ Учет ТМЦ v8 1cv8.cf УУ Абонемент ($m)

Запрос формирует остатки товаров на каждый день в пределах выбранного периода.

1 стартмани

26.04.2016    48833    19    arakelyan    18    

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии

Практика программирования v8 1cv8.cf Россия Абонемент ($m)

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    72145    144    igo1    51    

Количество дней недели (понедельников/вторников/...) в заданном диапазоне одним запросом

Практика программирования v8 Абонемент ($m)

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

1 стартмани

03.03.2016    15781    1    Alexander.Shvets    5    

Простой способ индексирования интервалов Промо

Практика программирования v8 Абонемент ($m)

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

1 стартмани

28.09.2016    37336    38    ildarovich    22    

Простые радости жизни программиста 1С: выбор типа значения

Работа с интерфейсом Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.02.2016    44799    47    yuraos    17    

Отображение прогресса выполнения длительных операций в БСП и их отладка в текущем сеансе.

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.02.2016    48378    161    balanton    22    

Яндекс.Деньги "Благотворительность"

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

1 стартмани

16.02.2016    20968    8    Tatitutu    5    

Мастер рассылки e-mail 2.2 для управляемых форм

Практика программирования Email v8 v8::УФ ERP2 БП3.0 УТ11 Абонемент ($m)

Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.

1 стартмани

29.12.2015    34864    19    milkers    4