Проверка орфографии средствами Yandex Speller

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

Разработка - Обработки - Универсальные обработки

Обработка правописание орфография управляемые формы yandex yandex speller http get html dom парсинг

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

Проверка орфографии средствами Yandex Speller

Описание

Обработка производит проверку передаваемого текста средствами API Yandex Speller, довольно проста в использовании.

Может принимать различные параметры и опции для проверки (см. скриншоты). Например может игнорировать короткие слова, исключать переданые слова из строки с разделителями или заданого справочника.

Позволяет на основе распознаных ошибок создавать справочник-словарь исключений.

Строка может содержать как обычный текст, так и HTML разметку.

Опции:

  1. Пропускать верхний регистр
  2. Пропускать слова с цифрами
  3. Пропускать пути и ссылки
  4. Выявлять повторы слов
  5. Пропускать латиницу
  6. Не предлагать замену (только подсвечивать ошибки)
  7. Отмечать латиницу
  8. Распознавать текст как набор слов
  9. Пропускать рЕгИСтР
  10. Пропускать римские цифры

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

Проверяет русский, английский и украинский языки.

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

Обращение происходит через HTTP GET (Я использовал бы Web сервисы, но платформа накладывает определенные ограничения, тем не менее в модуле есть закоменченный кусочек для соединения через WS).

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

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

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

Обработка использует только средства платформы, тестировалась на "голой" конфигурации 8.3.10.2561 УФ (Тонкий клиент), Win Server 2012R2.

На вскидку должна запуститься на чем угодно начиная с 8.3.6.1977 с отключенным режимом совместимости (Очень уж люблю СтрШаблон() ).

Красивости расчитаны на наличие IE-11 в системе, если у Вас все плохо, то поправьте следующую строку в модуле объекта: <meta http-equiv='X-UA-Compatible' content='IE=11'>

Спроектирована без  использования модальных окон и вызовов.

Обработка довольно подробно документирована, при вызове функции модуля объекта - все параметры подписаны.

Код открыт, можете править в свое удовольствие, только не продавайте отдельно саму обработку (только если в составе продукта).

 

Передаваемые параметры и полученный результат

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

Просто посмотрите, что возвращает закрытая форма или функция, там довольно интуитивно понятно)

 
 При инициализации формы с тонкого клиента
 
 При инициализации обработки на сервере

 

Примеры использования

Вариант "на клиенте":

Предположим вы хотите перед записью документа проверить правописание определенного реквизита, тогда Вы:

1) В модуле формы создаете процедуру "ПередЗаписью()"

2) В ней вызываете форму обработки, передав в нее структуру параметров (обязательно передайте значение ключа "Текст", иначе не имеет смысла, остальное заполниться по умолчанию). Также передайте владельца формы - ЭтаФорма.

!!! ЕСЛИ ВЫ НЕ ПЕРЕДАДИТЕ ВЛАДЕЛЬЦА ФОРМЫ, ТО ОБРАБОТКА ПОСЧИТАЕТ, ЧТО ВЫ ПРОСТО ЗАХОТЕЛИ ПОТЕСТИРОВАТЬ ЕЁ И СЕБЯ И СПРЯЧЕТ КНОПКИ "ОТМЕНИТЬ" и "ПРИНЯТЬ" !!!

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

3) Откройте форму, автоматически пройдет проверка. Если вы передали параметр "ЗакрытьЕслиБезОшибок" - Истина и не обнаружено ошибок, то форма будет сразу закрыта и вернет структуру с результатом проверки.

4) Если были обнаружены ошибки - пользователю будет предложено выбрать верные варианты и согласиться/не согласиться с правками.

5) Нажав кнопку Принять или Отмена (крестик) - форма закроется и вернет владельцу результат проверки или неопределено, соответсвенно.

 
На клиенте (упрощенный вызов)
 
На клиенте (с последующей ручной корректировкой)

 

Вариант "на сервере":

 

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

1) В модуле объекта документа создаете процедуру "ПередЗаписью()"

2) Там создаете объект обработки.

3) У этого объекта вызываете единственную функцию YandexSpeller(), в которую можете передать кучу параметров (ну или только текст на проверку первым параметром, только он обязательный), конфигуратор подскажет параметры.

4) Функция вернет структуру с ошибками и всевозможными данными, естественно включая исправленный текст.

 
На сервере (упрощенный вызов)
 
На сервере (возвращает исправленный текст и ошибки)

 

Листинг модуля объекта

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

 
YandexSpeller()

Ответы на вопросы

  • Q: Подскажите как сделать полосу прокрутки в поле HTML?
  • A: В модуле формы, в процедуре "СобратьHTML()" сотрите "overflow: hidden;"

 

  • Q: Почему при вызове формы пропадают кнопки "Принять" и "Отмена"
  • A: При создании формы обработки ПроверкиОрфографии из другой формы - не забывайте передавать параметром владельца "ЭтаФорма"

     

  • Q:  У меня очень длинные строчки с текстом, как настроить их авто перенос?
  • A: В модуле формы, в процедуре "СобратьHTML()" добавьте в блок <style></style> вариации следующего (можете посмотреть в гугле за что отвечает каждая строка).
pre {
	white-space: pre-line;
	word-wrap: break-word;
	word-break: break-all;
	width: 100%;
}

 

UPD 17.11.10

  • Изменил разбор XML ответа
  • Внешний вид формы
  • Добавил проверку на битую кодировку
  • Содержание HTML поля теперь IE=11
  • При смене значения JS скрипт перекрашивает Select в зависимости от Option
  • Поправил ошибку возникающую при использовании словаря и отсутсвии орфографических ошибок

 

UPD 18.04.23

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TODO:

  • При проверке справочника запоминать исправленные слова и проверять из этого соответсвия до проверки яндексом
  • Использовать асинхронную проверку
  • Отображать статус проверки
  • Добавить описание в модуль объекта для типовых конфигураций
  • Возможность проверять не только Наименование справочника, но и любой другой строковый реквизит

 

 Буду рад отзывам, комментариям, а также звездочкам :3 

 

 

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

Наименование Файл Версия Размер
Проверка орфографии средствами Yandex Speller

.zip 219,98Kb
09.11.17
59
.zip 18.04.23 219,98Kb 59 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. spec8s 482 09.11.17 23:00 Сейчас в теме
Совсем недавно делал нечто подобное, т. к. веб-сервис перестал работать. Только метод чтения XML возможно немного короче:

        ЧтениеXML = Новый ЧтениеXML();	
	ЧтениеXML.УстановитьСтроку(HttpОтвет.ПолучитьТелоКакСтроку());
	
	ПостроительDOM = Новый ПостроительDOM;
	ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
	
	РезультатПроверки = Новый Структура("error", Новый Массив);
	
	ЭлементыError = ДокументDOM.ПолучитьЭлементыПоИмени("Error");	
	Для Каждого ЭлементError Из ЭлементыError Цикл
		СтруктураОшибок = Новый Структура("s", Новый Массив);
		Для Каждого АтрибутError Из ЭлементError.Атрибуты Цикл
			СтруктураОшибок.Вставить(АтрибутError.Имя, Число(АтрибутError.Значение));
		КонецЦикла;
		
		ЭлементыWord = ЭлементError.ПолучитьЭлементыПоИмени("word");
		СтруктураОшибок.Вставить("word", ЭлементыWord[0].ТекстовоеСодержимое);
		
		ЭлементыS = ЭлементError.ПолучитьЭлементыПоИмени("s");
		Для Каждого ЭлементS Из ЭлементыS Цикл
			СтруктураОшибок.s.Добавить(ЭлементS.ТекстовоеСодержимое);
		КонецЦикла;
		
		Если СтруктураОшибок.s.Количество() > 0 Тогда
			РезультатПроверки.error.Добавить(СтруктураОшибок);
		КонецЕсли;
	КонецЦикла;
Показать
adhocprog; 🅵🅾️🆇; +2 Ответить
2. 🅵🅾️🆇 09.11.17 23:24 Сейчас в теме
(1) завтра подробнее посмотрю, идея была сделать покрасивее, разобрав XML через DOM, но немног не сдюжил)

Код вышел бы примерно той же длины, отличие в том, что данные в массив Я засовываю под русифицированными читабельными переменными, хотя этот момент можно было решить и изящнее, на вскидку записать в строку с разделителями "Атрибут:РускийСиноним:ОжидаемыйТипДанных; ... : ... : ... ; ...".
Привычка, если работаю с 1с - переменные должны быть русскими и PascalCase (исключение для массивов и некоторых данных, там могу поставить префикс), а вот в JS, Python, C++ и тд уже ожидаю увидеть латинские camelCase.

Но спасибо за поправку, скорее всего переделаю эту часть.
3. nasonkin 33 10.11.17 06:29 Сейчас в теме
Самый простейший вариант - отображение слов с ошибками, делал через SOAP. Вдруг кому пригодиться:
WSОпределение	= Новый WSОпределения("http://speller.yandex.net/services/spellservice?WSDL","","",,10);      
WSПрокси		= Новый WSПрокси(WSОпределение,"http://speller.yandex.net/services/spellservice","SpellService","SpellServiceSoap",,10);		
Пакет 			= WSПрокси.ФабрикаXDTO.Создать(WSПрокси.ФабрикаXDTO.Тип("http://speller.yandex.net/services/spellservice","CheckTextRequest"));  	
Пакет.options   = 55;
Пакет.format	= "plain";
Пакет.lang		= "ru";
Пакет.text		= Текст;
РезультатВебОперации = WSПрокси.checkTexts(Пакет); 
Для каждого ГрамОшибка из РезультатВебОперации.ArrayOfSpellResult.SpellResult[0].error Цикл
	СловаСОшибками = Строка(СловаСОшибками)+"'"+Строка(ГрамОшибка.word)+"', "
КонецЦикла
Возврат Лев(СловаСОшибками,СтрДлина(СловаСОшибками)-2)
Показать

Но на данный момент SOAP недоступен (хотя в документации ссылка на него есть). Написал в тех. поддержку, жду ответ.
adhocprog; awk; spec8s; +3 Ответить
4. 🅵🅾️🆇 10.11.17 09:07 Сейчас в теме
(3) Я тоже через него делал изначально. Вчера был доступен "checkText", но с ограничением: передавать параметром надо было только текст.
Есть очень весомое подозрение, что это не сервис у них лежит, а ограничения платформы 1с. Ведь XDTO пакеты это фишка самой 1с.

Вот так работает:
Определения	= Новый WSОпределения("http://speller.yandex.net/services/spellservice?WSDL",,,Неопределено,300);	
Прокси		= Новый WSПрокси(Определения, "http://speller.yandex.net/services/spellservice", 
									"SpellService", "SpellServiceSoap", Неопределено, 300);
Данные		= Прокси.checkText(Текст);


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

Вполне достаточно:
URL				= СтрШаблон("services/spellservice/checkText?text=%1&lang=%2&options=%3&format=%4", Текст, Язык, Опции, Формат);
HTTPСоединение	= Новый HTTPСоединение("speller.yandex.net", 80, , , , 300);
HTTPЗапрос		= Новый HTTPЗапрос(URL);		
HTTPОтвет		= HTTPСоединение.Получить(HTTPЗапрос);
5. guy_septimiy 10.11.17 09:09 Сейчас в теме
Интересное решение.
Респект.
6. &rew 21 13.11.17 11:56 Сейчас в теме
У меня одного было ощущение, когда я на звезду нажал, как будто "зигу" кинул?
maksa2005; Perfolenta; hrip; awk; Silenser; PVG_73; Yakud3a; Vladimir87; Serega-artem; Gobbledegook; nayd; bserge88; Кузьмич; RailMen; 🅵🅾️🆇; +15 Ответить
7. 🅵🅾️🆇 13.11.17 12:01 Сейчас в теме
(6) Полно вам, думаю эмблемка Grammar Nazi никого не оскорбит тк узнаваема и к томуже вполне уместна)
9. RailMen 798 13.11.17 12:12 Сейчас в теме
8. apostal86 231 13.11.17 12:04 Сейчас в теме
А api нет у этого Yandex Speller?
10. 🅵🅾️🆇 13.11.17 12:17 Сейчас в теме
(8) Не совсем понял вопрос.
Обработка и использует API Яндекса, дружит с ним через HTTP GET (в коде есть закоменченный кусочек для общения через веб сервисы, но там не выйдет вместе с текстом передавать параметры).

По сути обработка является оберткой над API Яндекса.
К самой обработке вы можете обращаться различными способами как с клиента (будет создана форма и установлены параметры либо из переданых, либо по умолчанию, если опущены), так и с сервера (будет возвращена структура с ошибками, предложениями по исправлению, исправленным текстом и текстом с пометками на месте ошибок). Если вам не нужна форма и не хотите предложить пользователю красиво и удобно ручками исправить свои абшибки - можете из листинга модуля объекта просто перенести функцию в общий модуль, все будет работать в лучшем виде (к томуже все передаваемые параметры подписаны и будут подсказываться в конфигураторе).

Я, наверное, слишком сложно и муторно объясняю, лучше посмотрите примеры использования в теме, там все намного проще и лаконичнее.
13. apostal86 231 13.11.17 13:39 Сейчас в теме
11. KroVladS 32 13.11.17 12:35 Сейчас в теме
Плагин для конфигуратора сделаете?
12. 🅵🅾️🆇 13.11.17 13:19 Сейчас в теме
(11) Плагин?
На стандартный конфигуратор, вроде, "вешаются" только шаблоны текста и инжект dll экзотики на вроде "снегопат".
Также есть "графит", но о нем ни слуху ни духу уже несколько лет. Может Я чего проспал?)

Или вы о "расширения конфигурации", штуке которая ставиться поверх типовых не снимая с поддержки?
Если о ней, то Я плохо представляю, что такого особенного Я могу сделать, кроме как добавить саму обработку.

Если кому не достаточно примеров вызовов из темы - могу добавить тестовую конфигурацию.
Яб и тестовый сервер поднял бы, но отдельную железку, которая не былаб дырой в безопасности соберать буду только через пару месяцев.
25. KroVladS 32 14.11.17 13:55 Сейчас в теме
(12)
Я как раз dll-ку имел ввиду.
26. 🅵🅾️🆇 14.11.17 14:00 Сейчас в теме
(25) Сильно врядли. Следующий раз как буду плюсы открывать - это будет внешняя компонента для распознования текста :3
14. Поручик 4409 13.11.17 16:16 Сейчас в теме
На вскидку должна запуститься на чем угодно, начиная с 8.3.6.1977 с отключенным режимом совместимости
15. 🅵🅾️🆇 13.11.17 16:18 Сейчас в теме
(14)
с отключенным режимом совместимости

Если это так важно, добавлю)
16. Поручик 4409 13.11.17 16:24 Сейчас в теме
(15) Конечно важно. Полно конф, которые работают на 8.3.7.ХХХХ и выше, но внутри у них 8.3.5 или даже 8.2.
17. 🅵🅾️🆇 13.11.17 16:29 Сейчас в теме
(16) Я думал это очивидно, но пусть будет.
Да и не велика проблема, вполне можно переписать эти моменты при помощи строковых функций из БСП.
18. Davurov 14.11.17 08:43 Сейчас в теме
Спасибо большое! Очень классная штука! Не подскажите как сделать полосу прокрутки в поле HTML? Когда длинное предложение неудобно с ним работать так как строчки не переносятся сами и нет полосы прокрутки
19. 🅵🅾️🆇 14.11.17 10:07 Сейчас в теме
(18) А, извиняюсь. Делал под себя и не ожидал полосы прокрутки, поэтому для красоты специально спрятал. В модуле формы, в процедуре "СобратьHTML()" сотрите "overflow: hidden;".

Если у вас выходит в ширину слишком длинной строка, то советую посмотреть на следующие стили CSS (также добавлять в СобратьHTML() в <st yle></style> блок):
pre {
	white-space: pre-line;
	word-wrap: break-word;
	word-break: break-all;
	width: 100%;
}



Сейчас создам в темке блок с QA и добавлю туда ответы на вопросы.
Удачи)
20. Davurov 14.11.17 10:34 Сейчас в теме
(19)
overflow


Ооо! спасибо заработало ) И ещё вопрос, если используется ОбработкаОповещения "ПослеПроверкиОрфографии", то для случая когда нет ошибок и стоит "ЗакрытьЕслиБезОшибок", после закрытия формы в эту процедуру не попадает, поэтому не могу вывести сообщение пользователю: "Все ок. ошибок нет =)"

Форма закрывается с этой ветки:

Если БезОшибок И ЗакрытьЕслиБезОшибок Тогда
		ЭтаФорма.Закрыть(Новый Структура("Текст,БезОшибок,КоличествоОшибок",Текст,БезОшибок,КоличествоОшибок));
		Возврат;
	КонецЕсли; // Если БезОшибок И ЗакрытьЕслиБезОшибок
21. 🅵🅾️🆇 14.11.17 10:58 Сейчас в теме
(20) На примере примера из темы для немодального вызова:
&НаКлиенте
Процедура ПроверитьОрфографию(Команда)
	//СтрокаНаПроверку	= "Мамо мыла раму.";
	Оповещение			= Новый ОписаниеОповещения("ПослеПроверкиОрфографии", ЭтаФорма, СтрокаНаПроверку); 
	П					= Новый Структура("Текст,Язык,Формат,МинДлинаСлова,Словарь,Опции,ЗакрытьЕслиБезОшибок",
											СтрокаНаПроверку, "ru,en", "plain", 0, "", 31, Истина);
	Форма	= ОткрытьФорму("Обработка.ПроверкаОрфографии.Форма", П, ЭтаФорма, Истина, , , Оповещение);
	Если Форма = Неопределено Тогда
		Сообщение	= Новый СообщениеПользователю;
		Сообщение.Текст	= "Форма не была создана, вероятно ошибок нету.";
		Сообщение.Сообщить();
	КонецЕсли; // Если Форма = Неопределено
КонецПроцедуры // ПроверитьОрфографию()
Показать


Ну или если не возражаете против модальных окон ( лично мое руководство их очень любит :3 ), то там все еще проще, просто смотрите, что возвращает:
Результат	= ОткрытьФормуМодально("Обработка.ПроверкаОрфографии.Форма", Новый Структура("Текст", СтрокаНаПроверку), ЭтаФорма);
22. Davurov 14.11.17 11:00 Сейчас в теме
Ок спасибо большое! очень выручили!

P.S у меня все равно приходит форма, поэтому добавил условие

Если Форма = Неопределено ИЛИ Форма.БезОшибок Тогда
        Сообщение    = Новый СообщениеПользователю;
        Сообщение.Текст    = "Ошибок нет!";
        Сообщение.Сообщить();
    КонецЕсли; // Если Форма = Неопределено
23. Davurov 14.11.17 11:09 Сейчас в теме
Не не не, спасибо =) никаких модальностей =)
24. ra1ich 17 14.11.17 13:08 Сейчас в теме
Прикольно, для нас будет актуально.
🅵🅾️🆇; +1 Ответить
27. azubar 37 07.12.17 00:51 Сейчас в теме
У меня не работает. либо вообще яндекс возвращает результат без ошибок либо только первую ошибку, в то время как просто в браузере выдает все ошибки, видео:
https://www.screencast.com/t/Ym9LeUQokNWy

Если слать текст на проверку яндексу POSтом то нормально работает.
И перекодировку текста лучше делать:
ТекстНаПроверку	= КодироватьСтроку(Текст, СпособКодированияСтроки.КодировкаURL);
🅵🅾️🆇; +1 Ответить
28. 🅵🅾️🆇 07.12.17 10:22 Сейчас в теме
(27) Все работает со строкой:
ашибка			арфаграфия	праверить	ашибки



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


С КодироватьСтроку() полностью согласен, добавлю в следующую версию.
Проблема действительно может иметь место быть, тк GET запрос передает параметры через URL, возможно нечто в тексте "портит" его.
29. Артано 669 24.04.18 10:45 Сейчас в теме
Производиться десять попыток достучаться до сервиса, прежде чем будет выведено сообщение о невозможности использования (сервис лег, ну или что вероятнее - ваш интернет).
Хотел пошутить про применение обработки к тексту публикации, но вспомнил, что здесь нужен семантический, а не синтаксический анализ.

Остальное порадовало, спасибо!
🅵🅾️🆇; sutkin; +2 Ответить
33. 🅵🅾️🆇 25.04.18 11:23 Сейчас в теме
(29) Поправьте, а Я обязательно поправлю в публикации.
Возможно у меня есть в наличии некоторое косноязычие.

Спасибо, рад теплым отзывам.
35. Артано 669 26.04.18 07:51 Сейчас в теме
(33) Ошибка из расстрельного списка грамматических нацистов (их символ в картинке публикации). написание тся и ться. Я думал после древнего апдейта вконтакте, когда разделили лайк на собственно лайк и на репост (мне нравиТся и поделиТЬся).
31. vgrichuk 25.04.18 08:53 Сейчас в теме
Оффтопик. Коллеги, меня одного покоробила эмблема граммар-наци, использованная в описании обработки?
madonov; 🅵🅾️🆇; pr0t; CyberBob; +4 Ответить
32. 🅵🅾️🆇 25.04.18 11:20 Сейчас в теме
36. BorovikSV 1362 26.04.18 11:03 Сейчас в теме
а почему логотип стилизован под фашистский флаг?
Perfolenta; +1 Ответить
38. madonov 155 27.04.18 08:41 Сейчас в теме
(36) это логотип движения "Граммар-наци".
Обычно символизирует нетерпимость к грамматическим ошибкам и их авторам.

Весьма спорный выбор со стороны автора, учитывая, что прецеденты в виде штрафов за его публикацию в нашей стране уже были.
Perfolenta; +1 Ответить
39. 🅵🅾️🆇 27.04.18 13:10 Сейчас в теме
(38) Такого не знал.
Просто показалось, что будет довольно уместным и привлекающим внимание...
40. madonov 155 28.04.18 03:16 Сейчас в теме
(39) Ну внимание однозначно привлекает =)))
42. Perfolenta 08.11.18 18:58 Сейчас в теме
(39) уберите его, пожалуйста, не надо провоцировать людей... привлекать внимание можно и не использую фашистскую символику...
43. imbalance 27.12.19 14:22 Сейчас в теме
Как слово в тексте красным подчеркнуть наподобие ворда или браузера?
44. 🅵🅾️🆇 463 30.12.19 21:30 Сейчас в теме
(43) так это и есть html документ, прям так и подчеркивайте, а css доводите до ума)
Оставьте свое сообщение

См. также

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

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

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

2 стартмани

06.10.2014    145293    1952    ekaruk    164    

Работа с релизами 1С и договорами ИТС

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

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    12106    34    RocKeR_13    10    

Быстрый запрос

Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Можно ли дать пользователю "удочку", а не "рыбу"? До сих пор ответ на этот вопрос был отрицательным. Всякий инструмент, который мог бы делать с базой данных все или почти все (или хотя бы многое), отвергался пользователями, как слишком сложный. Вспомните тот же SQL, который изначально разрабатывался именно как пользовательский инструмент. "Быстрый запрос" - это попытка устранить сложность, но сохранить при этом универсальность.

1 стартмани

29.04.2019    13756    26    mkalimulin    28    

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    26691    90    Synoecium    46    

Навигатор по конфигурации базы 1С 8.3 Промо

Инструментарий разработчика Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.63 от 10.06.2020

3 стартмани

28.10.2018    29333    276    ROL32    67    

Редактор объектов информационной базы 8.3

Универсальные обработки Обмен через XML v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.47 от 08.06.2020

2 стартмани

23.01.2019    24473    257    ROL32    33    

Сравнение pdf-файлов актов сверки

Универсальные обработки Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 v8::БУ БП2.0 Россия БУ Абонемент ($m)

Обработка сравнивает два pdf-файла, в которых находятся стандартные печатные формы актов сверки, и показывает на экране совпадающие и/или отличающиеся по суммам документы взаиморасчетов.

1 стартмани

19.12.2018    15492    6    Torin99    2    

Выгрузка изображений из справочника на диск

Учет ТМЦ Универсальные обработки Учет ТМЦ v8 УТ11 Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

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

1 стартмани

30.11.2018    15216    5    wrooom    8    

Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо

Перенос данных из 1C8 в 1C8 Универсальные обработки Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.

1 стартмани

22.10.2014    202325    3081    ekaruk    178    

Проверка VAT номеров

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    10611    0    wtlz    1    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    19841    258    morozov.sv    34    

Универсальный инструмент для переноса данных через табличный документ (УФ)

Обработка документов Универсальные обработки Обработка справочников v8 v8::УФ 1cv8.cf Абонемент ($m)

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

5 стартмани

15.10.2018    29792    114    json    36    

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    22998    32    Ditron    68    

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

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

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

1 стартмани

13.09.2018    18831    12    RocKeR_13    16    

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

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

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

1 стартмани

15.07.2018    73867    23    dsdred    24    

Пример использования REST API Яндекс Диска

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    21599    34    MKFreeUser    14    

Перемещение остатков по счету МЦ04 между материально ответственными лицами для конфигураций (8.2). Промо

Обработка документов Универсальные обработки Учет ТМЦ Учет ТМЦ v8 БП2.0 Россия БУ Абонемент ($m)

Небольшая обработка, которая позволяет перекидывать остатки по счету МЦ04 с одного материально ответственного лица на другое

1 стартмани

22.11.2012    12438    13    niksaf    4    

Обмен файловыми базами данных через Yandex диск

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    15455    5    slimper    1    

Конфигурация для просмотра публичных телеграм каналов

WEB v8 Абонемент ($m)

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

1 стартмани

02.06.2018    16083    10    DO_WHILE_LOOP    7    

Просмотр, изменение реквизитов объекта. Сравнение двух одинаковых объектов метаданных ИБ

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

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

1 стартмани

26.04.2018    16764    24    Vin_Tik    0    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

Относительно недавно Почта России стандартизировала и описала сервисы получения информации о регистрируемом почтовом отправлении (РПО). Представляю вашему вниманию конфигурацию-обертку над сервисами Почты России. Она позволяет просто (http-запросы) и без изменений конфигурации подключить сервисы отслеживания к своим информационным системам.

2 стартмани

28.03.2016    24738    10    Smaylukk    3    

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы)

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

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    34404    224    Ko1t    71    

Построение маршрута доставки с расчётом расстояния для любой базы УФ

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

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    32579    41    KorotkovRV    16    

А чё это вы здесь делаете, а?

WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

21.01.2018    22907    31    infosoft-v    42    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.12.2012    100204    1151    Smaylukk    348    

Сервер push сообщений “Push0k“ 18.05

WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.12.2017    16233    12    PloAl    20    

Подсистема Вики - интеграция 1С и сайта под управлением MediaWiki

WEB v8 Абонемент ($m)

Редактирование статей сайта Mediawiki из 1С. Формирование функционального описания конфигурации на сайте Вики.

1 стартмани

19.09.2017    26745    35    shmalevoz    20    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

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

5 стартмани

31.08.2017    15980    10    vipchep    0    

Инструменты бухгалтера: Виджеты рабочего стола

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

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

2 стартмани

28.08.2017    35343    170    Bazil    28    

Настройка рекламной кампании Яндекс.Директ на 30000 ключевых фраз за 60 минут - теперь это реально!

WEB v8 Реклама, PR и маркетинг Россия Абонемент ($m)

Конфигурация для настройки Яндекс.Директа.

10 стартмани

20.10.2016    27899    51    avalakh    10    

Поиск и отключение зависших сеансов на сервере 1С: Предприятия

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

Обработка предназначена для мониторинга и отключения спящих (зависших) сеансов на сервере 1С: Предприятия.

1 стартмани

14.09.2016    30244    61    wowchik_85    11    

Редактор движений документа. Сохранение в XML, обмен между базами, замена регистратора.

Обработка документов Универсальные обработки Обмен через XML v8 Абонемент ($m)

Редактор набора записей движений документа. Позволяет сохранить набор записей в XML, в настройки пользователя, прочитать сохраненный XML в другой идентичной базе, заменить регистратор. Можно изменять порядок записей, менять активность, как массово, так и по одной и др. Тонкий клиент, управляемые формы.

1 стартмани

07.09.2016    39017    153    Aphanas    4    

Универсальный поиск объектов по глобальному уникальному идентификатору (ГУИД, GUID)

Универсальные обработки Поиск данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Универсальная обработка поиска объектов информационной базы по глобальному уникальному идентификатору (ГУИД, GUID) или по его части.

1 стартмани

06.09.2016    31137    101    Dzenn    9    

Конструктор-тестер http запросов в 1С

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

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    40198    294    hlopik    17    

Легкий интернет-магазин из УТ 11.2

WEB Управление взаимоотношениями с клиентами (СRM) Оптовая торговля Розничная торговля Управление взаимоотношениями с клиентами (СRM) Оптовая торговля Розничная торговля v8 УТ10 УУ Абонемент ($m)

Обработка создания интернет-магазина из УТ 11. Создается единственный файл html, который содержит все выгруженные товары. Клиент составляет и отправляет заказ вам на e-mail прямо из браузера, не прибегая к использованию стороннего ПО.

11.08.2016    29571    23    hlopik    36    

Hello world на metadata.js

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

Про браузерные offline-first приложения можно написать миллионы слов. Сэкономлю своё и ваше время и перейду сразу к делу. В статье не будет рекламы и агитации за новые технологии, не будет критики традиционных или попсовых решений. Рассмотрим по шагам разработку простейшей программы на metadata.js. Постараюсь сделать акцент не на том «как это сделано», а «почему сделано именно так»

1 стартмани

11.08.2016    55986    111    unpete    208    

Оптимальный способ расчета контрольной суммы объекта/записи регистра (CRC32, MD5, SHA1, SHA256)

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

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

1 стартмани

01.08.2016    29160    6    hakerxp    9    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен)

Внешние источники данных WEB Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

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

1 стартмани

28.07.2016    31838    19    c1nil    4    

Просмотр данных системы Платон на картах Google

Универсальные обработки WEB v8 1cv8.cf Автомобили, автосервисы Транспорт, автопарки, такси Абонемент ($m)

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

1 стартмани

15.04.2016    30681    18    anig99    8    

Модуль для работы 1С (платформа 8.2 и выше) с внешними SOAP Web-сервисами

Внешние источники данных WEB Интеграция v8 1cv8.cf Абонемент ($m)

Модуль для работы 1С (платформа 8.2 и выше) с внешними Web-сервисами, реализованными по протоколу SOAP.

2 стартмани

15.02.2016    38320    83    lunjio    15    

ЕГАИС: код алкогольной продукции из штрихкода акцизной марки

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

В последнее время мне пришлось потратить очень много времени на внедрение и реализацию функционала ЕГАИС. Очень часто, на форумах, я встречал вопрос: "Как из штрих-кода акцизной марки получить код алкогольной продукции ЕГАИС?". Несколько раз видел неверную реализацию этой задачи. Глядя на это, я набросал простую обработку пересчета кода акцизной марки (base36) в понятный нам уникальный ФСРАР ID алкогольной продукции (Base10).

1 стартмани

11.02.2016    54637    156    OrcaMax    29    

Снимок экрана для 1С

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

Довольно часто люди сталкиваются с необходимостью сделать снимок экрана. Если вы или ваши сотрудники основную часть времени проводят в 1С и у вас есть необходимость прикреплять графические файлы, то эта компонента для вас.

1 стартмани

08.02.2016    26297    32    linkforget    11    

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API)

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

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

3 стартмани

04.02.2016    45025    169    TuneSoft    26    

Облачный каталог товаров на 1C

WEB Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Розница Абонемент ($m)

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

1 стартмани

28.12.2015    25308    29    skif47    42