Управление 1С извне

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

Разработка - Работа с интерфейсом

Передача команд 1С на выполнение через ссылки в письме.

1С имеет один очень мощный инструмент, который для меня был темным лесом. Хотя, наверно, и сейчас таковым остаётся, но уже что-то начинает проясняться. Это Web-сервисы. На сайте 1С можно поверхностно понять что это такое и зачем вообще это нужно.

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

Для меня же была поставлена задача возможности управление 1С через браузер. Как пример: обрабатывать завершение задачи БП в 1С по ссылке в письме (примерно такого типа //mag.itwonline.ru/?user=000000001&bp=000000555, т.е. отсюда видно, что пользователь 000000001 хочет закрыть задачу 000000555), т.е. пользователь со своего смартфона не имеющего доступа к 1С как таковому, должен получить возможность управлять ею извне. Собственно, более сложной задачей можно поставить написание собственных web-форм, более легких и компактных, с произвольным дизайном для управления 1С.

Задача с точки зрения написания кода 1С очень легкая. Основная сложность заключалась в освоении HTML и JavaScript для управления извне. Начальные знаний по этому вопросу я подчерпнул из статьи Примеры пользования web сервисов 1С из браузера.

Настройка 1С

Для возможности использовать 1С в вебе необходимо:
1. Установить модуль расширения веб-сервера;

2. Настроить Windows: доустановить компоненты IIS и настроить проверку подлинности. Всё это можно прочитать в статье Настройка веб-клиента 1С:Предприятие 8.2 под Windows 7 x64 и IIS.

Программирование 1С

Теперь можно приступить к конфигурированию.

1. Создадим Web-сервис Input:
1.1. Input имеет операцию InputData которая принимает два параметра: User и Command, и возвращает параметр типа "boolean (http://www.w3.org/2001/XMLSchema)". Текст функции InputData:

Функция InputData(User, Command)

   
обДанные = Справочники.Данные.СоздатьЭлемент();

   
обДанные.Наименование = User + ":" + Command;

   
обДанные.Записать();

    Возврат Истина;

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

1.2. Устанавливаем для Input URI пространства имен = "//mag.itwonline.ru". Здесь может быть любое уникальное имя, обычно это ссылка на сайт.

1.3. Устанавливаем для Input имя файла публикации = "input.1cws". Это имя web-сервиса к которому будем устанавливать соединение.

2. Для наглядности примера создадим справочник Данные, все параметры оставим по умолчанию.

3. Публикуем нашу конфигурацию и web-сервис: Администрирование -> Публикация на веб сервере...

На этом конфигурирование заканчивается, всё остальное сделает за нас 1С.

Разработка HTML страницы

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

После установки ISS (я уже давал ссылку в начале статьи) на диске C появится каталог C:\inetpub\wwwroot, в этом каталоге располагается сайт. Для локальной машины (на которой установили ISS) он виден так http://localhost/, ну а для пользователей извне, как-то так //mag.itwonline.ru (по правде там немного сложнее, но не суть, мы сейчас не про это). Заглавная страница сайта будет грузиться из файла index.htm каталога C:\inetpub\wwwroot

 

Исходники файлов можно скачать здесь

Код файла index.htm попытаюсь объяснить как могу, т.к. сам некоторые моменты не понимаю:

[html xmlns="http://www.w3.org/1999/xhtml"] // Неважно. Используется в XHTML для объявления пространства имен.
[head] // Предназначен для хранения других элементов, цель которых — помочь браузеру в работе с данными.

[meta http-equiv="Content-Type" content="text/html; charset=utf-8" /] // Неважно.  Мета-теги используются для указания описания.

[title]Тест веб сервиса 1С[/title] // Неважно. Определяет заголовок документа, то что видит пользователь как текст вкладки.

[script type="text/javascript" src="../js/connect1c.js"] [/script] // Важно. Подключение JavaScript библиотек. В моём случае это мой модуль соединения с 1С.
[script type="text/javascript" src="../js/parameters.js"] [/script] // Важно. А это модуль обработки параметров строки браузера.

[/head]

[body] // Предназначен для хранения содержания веб-страницы (контента), отображаемого в окне браузера.
[p id="response1C"][/p] // Важно. Метка response1C, куда вернёться ответ запроса 1С.
[/body]

[script type="text/javascript"] // Важно. Начало основного скрипта, который выдёргивает из строки браузера всё что идёт дальше знака вопроса,
а дальше парсит по определенному алгоритму. В нашем случае будут искаться ключевые слова "user=" и "command=".

    user = GetParameter("user"); // Важно. Находим значение user. Сам метод GetParameter находится в библиотеке parameters.js, о которой поговорим чуть позже.
   
command = GetParameter("command"); // Важно. Находим значение command.

   
Inquiry1C(user, command); // Важно. Запрос к 1С с найденными параметрами. Сам метод Inquiry1C находится в библиотеке connect1c.js

[/script]

[/html]

*дико извиняюсь, & lt; и & gt; не работают (точнее работают, но после пересохранения они исчезают). Заменил < на [, а > - ]

Рассмотрим библиотеку parameters.js, которая находится в папке C:\inetpub\wwwroot\js

function GetParameter(pName) { // Сам метод я нашёл на просторах интернета.

   
search = window.location.search; // window.location - это по сути URL, метод search этого объекта возвращает часть адреса после символа "?", включая символ "?".

   
begin = search.indexOf(pName) + pName.length + 1; // Вычисляем позицию начала строки значения параметра для вырезания. +1 - в нашем случае это знак "=".
Итого, для search = "?user=007" мы найдём позицию начала равной 6 (нумерация с нуля).
    end = search.indexOf('&', begin); // Находим позицию конца выражения. В нашем случае, разделение параметров осуществляется знаком "&", и если мы его не найдём,
то позицией конца будет последний символ строки search (смотри дальше код).

    if (end == -1) {
        end = search.length;
    };

    return unescape(search.substring(begin, end)); // Метод unescape возвращает строку, содержащую данные типа charString (не знаю зачем это надо,
но видимо такое приведение типа здесь необходимо). Ну а метод substring - извлекает подстроку из строки.

}

Теперь рассмотрим библиотеку connect1c.js, которая также находится в папке C:\inetpub\wwwroot\js

function Inquiry1C(pUser, pCommand) { // Основной метод этой библиотеки. Запрос к 1С.

   
XMLHTTP = CreateRequestObject(); // Создание XML HTTP запроса. Сам метод я узнал из википедии.

   
XMLHTTP.open('POST', '../TestWeb/ws/Input.1cws', true, "Admin", "1"); // Создаём соединение типа POST, где второй параметр - адрес; параметр true - значит асинхронное,
то есть браузер не будет ждать ответа сервера, а продолжит работу; далее пользователь и пароль с правами на операцию InputData (этот тот метод, который мы написали в 1С),
саму операцию можно выполнять в привилегированном режиме, чтобы не мучиться с правами для пользователя Admin.

    XMLHTTP.onreadystatechange = function() {WhenAnswering1C(XMLHTTP)}; // Когда 1С отработает, автоматически сработает метод WhenAnswering (о нём чуть ниже по тексту этой библиотеки).

   
XMLHTTP.send(''
        + ' '
        + ' '
        + ''
        + pUser + ' '
        + ''
        + pCommand + ' '
        + ' '); // Отправка XML запроса, где описывается метод к исполнению в 1С, с переданными параметрами из нашей строки URL.
// Строку запроса можно раскурить минут за 5:)

}

function CreateRequestObject() { // Чудо метод из википедии "Пример использования". По сути, ничего сложного.
   
if (typeof XMLHttpRequest === 'undefined') {
        XMLHttpRequest = function() {
            try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
                catch(e) {}
            try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
                catch(e) {}
            try { return new ActiveXObject("Msxml2.XMLHTTP"); }
                catch(e) {}
            try { return new ActiveXObject("Microsoft.XMLHTTP"); }
                catch(e) {}
            throw new Error("This browser does not support XMLHttpRequest.");
        };
    }
    return new XMLHttpRequest();
}

function WhenAnswering1C(pXMLHTTP) { // Метод, который срабатывает после обработки запроса 1С.

   
status = StausRequest(pXMLHTTP); // Вычисляется статус для отправки сообщения пользователю (о нём чуть ниже).
   
document.getElementById("response1C").appendChild(document.createTextNode(status)); // Вывод на экран в помеченную область response1C (о ней я писал в основном файле).
Метод getElementById возвращает ссылку на узел документа.
Метод appendChild добавляет нод в конце списка дочерных нодов элемента, т.е. встраивает в нашу область нужный нам текст.

}


function StausRequest(pXMLHTTP) // Определение статуса.
{
    status = "";
    if (pXMLHTTP.readyState == 4) { // Опять же, читая википедию можно понять, readyState - это текущее состояние объекта (0 — не инициализирован, 1 — открыт,
2 — отправка данных, 3 — получение данных и 4 — данные загружены).
        if (pXMLHTTP.status != 200) { // status - HTTP-статус в виде числа (404 — «Not Found», 200 — «OK» и т. д.)
           
status = "Запрос завершился неудачно. Ответ сервера: " + pXMLHTTP.responseText; // responseText -текст ответа на запрос.
Если состояние не 3 или 4, возвращает пустую строку.
        }
        else {
            if (RequestSuccessful(pXMLHTTP)) { // Проверка ответа от 1С (о нём чуть ниже).
               
status = "Запрос отработан.";
            }
            else {
                status = "Запрос был отклонён.";
            };

        };
    };

    return status;
}

function RequestSuccessful(pXMLHTTP) { // Проверка ответа от 1С. Здесь мы получим возвращаемое от 1С значение (в нашем случае 1С может вернуть тип булево).

   
DOM = pXMLHTTP.responseXML.getElementsByTagName("return")[0]; // responseXML - Текст ответа на запрос в виде XML, который затем может быть обработан посредством DOM.
Если состояние не 4, возвращает null.
    response = DOM.childNodes[0].data; // Достаём данные из ответа.

   
return response == "true"; // Если правда, то правда:) По правде, я не смог преобразовать сроку в булево, поэтому пришлось оставить так.

}

Проверка

Открываем браузер и вводим строку "localhost/?user=007&command=hello world!":

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

На этом пример ознакомления управления 1С извне можно считать законченным:)

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. alexware 10.10.12 05:11 Сейчас в теме
Отличная статья! Только начинаю присматриваться к Web-сервисам - скоро, видимо, понадобится по работе. Очень хорошо написана, чудесные комментарии. Даже непосвященному всё понятно. Спасибо!
2. BorisMor 305 10.10.12 05:51 Сейчас в теме
Статья хорошая, но html и java-script не читаемые.
Может просто код выделить тегом <pre> ?
5. Soloist 494 10.10.12 08:46 Сейчас в теме
(2) BorisMor, что-то так сразу не получается. Но думаю сами файлы улучшат ситуацию http://yadi.sk/d/jmg8ydss07Dey
BorisMor; +1 Ответить
3. las77 4 10.10.12 06:00 Сейчас в теме
добавлю в закладки. когда нибудь пригодится.
6. oly86 10.10.12 09:05 Сейчас в теме
(3) las77, +1, тоже в закладки, полезная вещь, надо начинать осваивать
4. Vladimir87 224 10.10.12 06:16 Сейчас в теме
Задача с точки зрения написания кода 1С очень легкая. Основная сложность заключалась в освоении HTML и JavaScript для управления извне.


А мне наоборот, web-программирование проще, чем 1с ). Но это так. А по статье - молодец. Ставлю плюс.
7. ivs200999 10.10.12 09:08 Сейчас в теме
Любопытно, спасибо за статью.
8. DoctorRoza 10.10.12 09:51 Сейчас в теме
Плюс за содержание и оформление. Все бы так делали.
9. poyson 10.10.12 10:11 Сейчас в теме
Хорошая статья. подробная. спасибо.
10. sstar90 10.10.12 10:16 Сейчас в теме
Нормалек, спасибо за статью
11. NPMar 10.10.12 10:25 Сейчас в теме
Спасибо большое за статью! Очень хорошее и содержание и оформление. Даже "чайнику" всё понятно. Надеюсь, что пригодится в удаленной работе. Спасибо!
12. Yashazz 3204 10.10.12 13:12 Сейчас в теме
Несколько не понял, за что такие восторги человеку, который, по его же признанию, "сам многого не понимает", а часть статьи - самоочевидные вещи по публикации веб-сервисов. Автор, я б на твоём месте эту статью в рейтинге не считал.
16. Soloist 494 10.10.12 13:34 Сейчас в теме
(12) Yashazz, со стороны кодинга и установки 1С - всё просто. Но для человека не знающего JavaScript дальнейшая реализация - это новый мир. Я не скрываю, что он легок для тех кто знает его. Я просто показал как я к этому шёл, и поверьте я был бы рад, если бы для меня это написали раньше, когда я задавал подобный вопрос на Мисте http://www.forum.mista.ru/topic.php?id=614454

Следующая статья будет более 1Сая.
29. Angry 11 12.10.12 14:48 Сейчас в теме
(12) Yashazz, Вы не правы, человек описал на простом языке основы веб сервисов, за это он заслужил огромный +.
Но если Вы думаете, что сможете лучше, то дерзайте. Я думаю многие плюсовавшие будут благодарны и Вам если предоставите информацию, о том где есть информация о веб сервисах, доступная для программистов 1С. (именно для них этот ресурс).

А по теме: Иван молодец, я раньше пытался узнать, что это за зверь такой Веб сервис, но не смог выделить достаточно времени, потому просто забил, теперь есть возможность попробовать снова, потому: Спасибо и +.
30. Трактор 1198 12.10.12 16:57 Сейчас в теме
(29) Angry,
Я думаю многие плюсовавшие будут благодарны и Вам если предоставите информацию, о том где есть информация о веб сервисах, доступная для программистов 1С.

Уже 5 лет публикации http://infostart.ru/public/16001/ Она о том же что и эта.
Rustig; Soloist; +2 Ответить
32. Soloist 494 15.10.12 07:50 Сейчас в теме
(30) Трактор, ваша статья мне очень помогла, для развитии этой идеи. Извиняюсь, что забыл добавить в публикацию. Исправил.
53. mdSerg 21.05.13 13:38 Сейчас в теме
(30) Трактор, только её не скачать
13. absolutblohin 10.10.12 13:12 Сейчас в теме
Как раз работаю над конфигурацией, в которой программисту ставятся задачи через письма. Попробую это как нибудь прикрутить. Автору спасибо.
14. Raminus 10.10.12 13:17 Сейчас в теме
Как ознакомление пойдет.
15. Gandalf Белый 10.10.12 13:28 Сейчас в теме
Большое спасибо! Очень интересная статья! думаю пригодиться. ))
17. lukoyanovas 10.10.12 14:56 Сейчас в теме
(0) Что-то я не заметил, а где мы указываем под каким пользователем логинимся в 1С?
И еще, а что если полученную в результате ссылку мы нажмем 10000000 раз подряд (допустим в цикле)?
19. Soloist 494 10.10.12 15:07 Сейчас в теме
18. Soloist 494 10.10.12 15:06 Сейчас в теме
1. "XMLHTTP.open('POST', '../TestWeb/ws/Input.1cws', true, "Admin", "1");" - здесь пользователь базы Admin с паролем 1;
2. В моём примере будет столько записей сколько раз перейдут по ссылке. Но не сложно отработать подобную ситуацию в 1С и предусмотреть под это событие нужную ветку.
20. AlexO 128 10.10.12 15:19 Сейчас в теме
Я всегда знал, что 1С - навязана ИЗВНЕ.
Ничего человеческого :)
21. alon 171 10.10.12 15:29 Сейчас в теме
саму операцию можно выполнять в привилегированном режиме

А если еще в функции InputData использовать команду "Выполнить", то уже на следующий день можно увольняться. Хакеры камня на камне от базы не оставят.
iov; Kuzja_R; Трактор; +3 Ответить
22. Soloist 494 10.10.12 15:34 Сейчас в теме
(21) alon,
..., чтобы не мучиться с правами для пользователя Admin

настройте тоньше и будет счастье.
24. klel 10.10.12 19:32 Сейчас в теме
Самая что ни на несть отличная статья, даже не думал что такое можно сделать :) Огромное спасибо за статью обязательно возьму себе на вооружение =) ОГРОМНЫЙ "+"
25. LelikOFF 11.10.12 09:23 Сейчас в теме
Интересная статья, нужно будет попробовать
26. UncleVader 128 11.10.12 09:35 Сейчас в теме
Я так понял данный метод будет работать только при условии удачного создания ActiveX-объекта, т.е. только на Win-платформе!?
27. Soloist 494 11.10.12 10:23 Сейчас в теме
(26) UncleVader, если я правильно понимаю код метода CreateRequestObject(), то в блок использования ActiveX исполняемый код попадёт, если typeof XMLHttpRequest === 'undefined', а это возможно для IE версии 6 и ниже. Для всех остальных случаев будет работать строка "return new XMLHttpRequest();"
28. kilokilo 18 11.10.12 14:35 Сейчас в теме
Очень опасно без предварительной авторизации через web-сервисы создавать контент в БД.. разгребать потом замучаетесь - кто, что и когда.
На чтение - еще куда не шло, единственное - слишком частые запросы приведут к отказу от обслуживания (типа DDOS атаки).
А так - плюс за обмен опытом.
31. Kuzja_R 329 13.10.12 14:55 Сейчас в теме
Заголовок "Передача команд 1С на выполнение через ссылки в письме." совершенно не соответствует содержанию. Тонкий маркетинговый ход?
33. Soloist 494 15.10.12 07:50 Сейчас в теме
34. nataon 23.10.12 15:01 Сейчас в теме
Хорошая статья, спасибо
35. evrakylon 08.12.12 10:54 Сейчас в теме
Спасибо за статью. Осталось не ясным следующий момент. Вот строка HTTP запроса

XMLHTTP.open('POST', '../TestWeb/ws/Input.1cws', true, "Admin", "1");

Веб сервис публикуется из 1С 8.2, значит файла Input.1cws нет, а данные об alias указываются в default.vrd, например в разделе <ws>. Что означает в данном случае путь (или адрес) '../TestWeb/ws/Input.1cws'? На скрине видна папка TestWeb - что в ней?
Спасибо!
37. Soloist 494 11.12.12 10:52 Сейчас в теме
(35) evrakylon, я думаю что это адрес. В папке TestWeb два файла default.vrd и web.config. В файле default.vrd прописан наш web-сервис вот так:
<ws>
<point name="Input"
alias="input.1cws"/>
</ws>
36. tolik_byr 08.12.12 22:01 Сейчас в теме
Интересно, но какие-либо мыслей по явному применению у кого-нибудь есть?
38. evrakylon 11.12.12 12:40 Сейчас в теме
1. При вводе в браузер http://localhost/preved/ws/preved.1cws?wsdl открывается корректное описание
2. При вводе http://localhost/preved запускается web-клиент 1С
Тут корректно, мало того я подключаюсь к вебсервису из другой 1С.
Далее, в папке C:\inetpub\wwwroot\preved есть файл default.vrd
<ws>
<point name="preved"
alias="preved.1cws"/>
</ws>

Какой же путь тут должен быть XMLHTTP.open('POST', '???', true, "Admin", "1");
и где правильно расположить файлы HTM и JS?
39. Soloist 494 12.12.12 11:17 Сейчас в теме
(38) evrakylon,
"Какой же путь тут должен быть XMLHTTP.open('POST', '???', true, "Admin", "1"); "
я думаю '../preved/ws/preved.1cws'. Может зависит от платформы... у меня на одной из 8.3.1 точно не выполнялось (может даже есть одна 8.2 на которой не выполняется). Сейчас стоит 8.3.2.172 и IIS 8, путь такой, какой я написал.

"и где правильно расположить файлы HTM и JS?"
в принципе где угодно, важна ведь строчка подключения этой библиотеки. Путь к файлам js я прописывал в самом начале
<script type="text/javascript" src="../js/parameters.js"> </script>
40. x2z7yy 24.01.13 08:35 Сейчас в теме
XMLHTTP.send(''
+ ' '
+ ' '
+ ''
+ pUser + ' '
+ ''
+ pCommand + ' '
+ ' ');


Не пойму, так и надо чтоли писать? Или вместо пробелов что-то должно быть?
41. Soloist 494 24.01.13 15:14 Сейчас в теме
(40) x2z7yy, извиняюсь, это infostart пожрал код, возьмите его отсюда http://yadi.sk/d/jmg8ydss07Dey
42. x2z7yy 24.01.13 15:41 Сейчас в теме
(41) Soloist, спасибо, сейчас буду пробовать дальше.
45. 300hp 11.04.13 14:27 Сейчас в теме
(41) Soloist, привет! где еще можно посмотреть что там за код съел infostart?
46. Soloist 494 16.04.13 08:18 Сейчас в теме
(45) 300hp, вот здесь все исходники http://yadi.sk/d/jmg8ydss07Dey. Сейчас статью обновлю
43. sikuda 620 15.02.13 14:51 Сейчас в теме
Хорошая статья, но как из прошлой жизни:
XMLHttpRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
Я развил эту идею http://infostart.ru/public/167093/
44. Soloist 494 18.02.13 07:53 Сейчас в теме
47. m.bolsun 737 17.04.13 11:15 Сейчас в теме
ставлю + т.к. люблю всякие вещи, такого рода. У самого есть пара прототипов работы с вебсервисами из самой 1с, но мне не подходит изменение конфигурации, поэтому использую HTTPСоединение.
Тут однозначно необходимо решить вопросы с безопасностью и имхо, возможно стоит поменять направление запросов, т.е. к 1с никто не соединяется, а сама 1с цепляется через SSL соединение, к какому-нибудь доверенному безопасному серверу, где ее уже ждет очередь команд. Как то так.
48. Soloist 494 17.04.13 11:48 Сейчас в теме
49. TitanLuchs 243 17.04.13 12:20 Сейчас в теме
Веб-сервисы и не на это способны на самом деле ) Но минус у них есть - при большом потоке запросов имеют свойство отваливаться...
50. mary61 38 18.04.13 11:46 Сейчас в теме
Большой +. В будущем пригодится
51. Ed111111 11 19.05.13 23:14 Сейчас в теме
Не понял, для чего это нужно?
52. Soloist 494 20.05.13 07:58 Сейчас в теме
(51) Ed111111, ради фана. Ну и приятно же не открывая 1С выполнить действие в базе, имея лишь исполняемую ссылку, которую тебе прислали.
Оставьте свое сообщение

См. также

Недокументированное использование стандартных обработок из меню "Все функции". Промо

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

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    108921    0    ekaruk    127    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    3475    0    77dream77    21    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

18.02.2020    3758    0    randomus    18    

[Шпаргалка] Свой диалог выбора типа значения (элемента)

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

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

18.02.2020    2462    0    rpgshnik    6    

Генерация кода управляемой формы (декомпиляция элементов) Промо

Инструментарий разработчика Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

29.09.2014    99321    0    ekaruk    127    

Динамический список. Апгрейд справочника "Номенклатура" типовой конфигурации с помощью расширения

Практика программирования Работа с интерфейсом v8 УНФ Бесплатно (free)

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

26.01.2020    6732    0    aximo    26    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

В данной публикации рассмотрим базовый подход к использованию собственных макетов в СКД на примере формирования небольшого отчета.

13.01.2020    9976    0    aximo    13    

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Практика программирования Работа с интерфейсом v8 ДО Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    3250    0    pavelpribytkin96    2    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    23700    0    Tatitutu    12    

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    7311    1    John_d    16    

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом v8 Бесплатно (free)

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

03.12.2019    9554    0    VachKirp    13    

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом v8 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    7757    0    Vlan    43    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

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

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

16.09.2012    34929    0    Aleksey.Bochkov    29    

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    9084    0    John_d    24    

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений v8 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    4199    0    user1069006    1    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    7631    0    slozhenikin_com    27    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

Работа с интерфейсом v8 БП2.0 УПП1 БУ Бесплатно (free)

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    19798    0    KapasMordorov    4    

Лайфхаки 1С (часть 2) Настройка работы интерфейса такси. Настройка и советы по работе

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Советы по настройке интерфейса Такси и особенности работы в этой среде.

24.10.2019    7462    0    VachKirp    7    

Создание асинхронных виджетов

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    11347    0    YPermitin    19    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

06.10.2019    10583    0    YPermitin    31    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

09.04.2011    44962    0    mtv:)    74    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

02.10.2019    10917    0    VachKirp    10    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Практика программирования Работа с интерфейсом v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    6269    0    Sergey_Borisovi4    3    

[Шпаргалка] Программное создание элементов формы

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

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

06.09.2019    35229    0    rpgshnik    62    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    31403    0    milkers    10    

[Механизм интерфейса] Часы

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

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    8886    0    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    9078    0    nagaitseff    15    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    9722    0    IvanAT1981    14    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

29.11.2012    45266    0    aavolkoff    50    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    9168    0    dsdred    9    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.07.2019    20181    0    ids79    2    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом v8 БП2.0 Россия Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    36414    0    dour-dead    18    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    34686    0    YPermitin    52    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free)

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

14.05.2019    16444    0    Viktor_Ermakov    6    

Свой макет оформления отчета

Работа с интерфейсом v8 v8::СКД Россия Бесплатно (free)

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    10923    0    olegpkc    5    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

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

27.05.2012    45073    0    1cUserAndrew    25    

Динамический вывод таблицы значений на форму

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

11.01.2019    10597    0    Vlad1917    30    

Прикладной пример переработки стандартной формы РМК - Розница

Работа с интерфейсом Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 Розница УУ Бесплатно (free)

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

04.10.2018    17390    0    asdfgcom    58    

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

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

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    28986    0    1cspecialist    33    

Cправочная информация. Картинки.

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    9018    0    aspirator23    2    

Итоги в динамическом списке

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагаю вариант, как быстро сделать итоги в динамическом списке, например в форме списка журнала документов.

28.05.2018    13266    0    CXY    16    

Программное управление обычными формами документов и справочников в УПП/КА

Работа с интерфейсом v8 v8::УФ КА1 УПП1 Россия Бесплатно (free)

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

09.05.2018    11488    0    dima_home    9    

Допиливаем форму выбора серий номенклатуры для отображения остатков Промо

Практика программирования Работа с интерфейсом v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

20.01.2011    31181    0    practik1c    19    

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением

Работа с интерфейсом v8 v8::УФ Беларусь Бесплатно (free)

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    12203    0    Drak87    18    

Красивые графики. Пошаговая инструкция (Highstock)

Работа с интерфейсом v8 Бесплатно (free)

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    16674    0    Degrement    20    

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом

Практика программирования Работа с интерфейсом v8 Россия Бесплатно (free)

Алгоритм действий для смены стандартной формы выбора для реквизита формы на свою форму со своей выборкой данных и возвратом нескольких параметров в вызывающую форму

30.09.2017    19493    0    ah7777777    24    

"Мигаем" интерфейсом, или цепочки асинхронных вызовов

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    15600    0    Chrizt    13    

Выделение строк мышкой (УФ)

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Выделение строк при помощи мышки.

06.06.2017    11601    0    HalfZer0    6    

"Восстановить положение окна" - не помогает. Как я решил проблему.

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

28.05.2017    63665    0    niko11s    45    

Как добавить/убрать кота в отчет?

Работа с интерфейсом v8 БП3.0 Бесплатно (free)

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    26796    0    starik-2005    16