Бесплатная отправка сообщений в Whatsapp бот из 1С

Публикация № 1672749 08.06.22

Интеграция и обмен данными - Мессенджеры и боты

Whatsapp ватсап whatsapp-web node npm

Задача: Имеются 200 контрагентов, которым ежедневно нужно из отчета 1С выслать сумму их задолженности или предоплаты в Whatsapp (рассылка должна идти с номера менеджера этих контрагентов).

Первым делом посмотрел публикации на infostart, но в большинстве решений просят денег или платные сервисы или методы подключения к Whatsapp устарели.

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

Вышел на решение whatsapp-web.js (https://www.npmjs.com/package/whatsapp-web.js/v/1.16.4-alpha.0)

Для того, чтобы воспользоватся npm, нужно установить node.js (https://nodejs.org/en/)

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

Далее скачиваю пакет в папку на компьютере

Для этого нужно

  • Открываем cmd 
  • Проверяем, что node.js установлен: node -v
  • Открываем пустую папку в которой и будет наш проект к примеру (D:\Whatsapp)

Набираем команду: npm init (На все вопросы жмем интер)

 

 

 

  • Устанавливаем пакет whatsapp-web.js

npm i whatsapp-web.js

 

 

 

 

  • Создаем в папке файл index.js

 

 

 

  • В файл нужно добавить логику рассылки, к примеру, как в примере на страничке npm whatsapp-web.js
 

 

const { Client,LocalAuth } = require('whatsapp-web.js');

const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
});

client.initialize();

 

 

  • запускаем проект 

node index.js

 

 

 

  • после запуска должна вылезти форма авторизации в Whatsapp 

 

 

 

 

На телефоне открываем Whatsapp (Связанные устройства) и сканируем q-code для авторизации.

 

 

 

 

Пошлем на этот номер команду !ping, то бот нам ответит pong

 

 

 

На этом задача минимум решена. 

У нас запущен бот, который отвечает на сообщения. Мы влияем из файла index.js, что будет отправлено в Whatsapp. 

 

Начинаем решать основную задачу.

Мне рассылку из 1с нужно  делать не с левого номера (бота), а с номера менеджера, чтобы контрагенты не видели разницы между рассылкой и обычными сообщениями менеджера и контрагенты могли отвечать на сообщения.

1. В 1с нужно создать справочник номераWhatsapp или регистр сведений  (измерение контрагент, ресурс номерWhatsapp). или добавить реквизит номерWhatsapp в справочник контрагентов. 

У меня это Справочник "предопределенные константы", в которой есть табличная часть с двумя реквизитами.

2. Рассылку из 1с будут запускать на терминальном сервере все содержимое папки Whatsapp поместим на терминальный сервер в папку (C:\Program Files (x86)\Whatsapp\)

3. Установим node.js на терминальном сервере

 

Создал в 1с обработку 

(Кнопки добавить и записать служат для добавления новых контрагентов с номером)

 

 

 

 

Обработка генерирует строку !комадна для бота и Json.

  • команда !senddebit
  • json массив массивов (номер Whatsapp и сумма):
 

 

[
[79951231212,4445630.5],
[79041231212,-57113968],
[79771231212,-5322.81]
]

 

После нажатия кнопки "Отправить в Whatsapp":

1. Формируются данные для отправки

2. Строка с данными автоматически копируется в буфер обмена

3. Всплывает окно авторизации в Whatsapp (авторизоваться должен пользователь от чего номера будет рассылка).

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

 

Но для того, чтобы index.js обработал новую команду !senddebit, нужно его доработать. 

На этот раз ловим сообщение, которое отправили мы сами (без разницы кому) и которое начинается на !senddebit

Вместо события client.on('message', буду использовать событие client.on('message_create' которое ловит все сообщения, в том числе, которые мы создали сами.

 

 

client.on('message_create', async msg => {
    if (msg.fromMe) {
		if (msg.body.startsWith('!senddebit ')) {
            const messagesJson = msg.body.replace('!senddebit ','')
            const arrMessages = JSON.parse(messagesJson)
            if (Array.isArray(arrMessages)) {
                arrMessages.forEach(async n_m=>{
                    let number = n_m[0]+'';
                    let sum = n_m[1];
                    number = number.includes('@c.us') ? number : `${number}@c.us`;
                    if (number.length==16 && sum!='') {
                        let type = 'задолженность'
                        if (Number(sum)<0) {
                            type = 'предоплата'
                            sum = sum *-1
                        }
                        let message = 
`Добрый день!
Ваша ${type} составляет ${sum}`
                        let chat = await msg.getChat();
                        chat.sendSeen();
                        client.sendMessage(number, message);
                    }
                })
            }
        }
    } 
});

 

В итоге контрагенту приходит сообщение

 

 

 

Если вам понравилась статья, поставьте плюсик, мне будет приятно)

 

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.13.209)

Платформа 1С:Предприятие 8.3 (8.3.19.1467)

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

Наименование Файл Версия Размер
Whatsapp рассылка дебиторки

.epf 8,90Kb
14
.epf 8,90Kb 14 Скачать
мой index.js

.js 3,23Kb
12
.js 3,23Kb 12 Скачать

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

Лучшие комментарии
39. Alexez 76 14.06.22 13:06 Сейчас в теме
Круто я реализовал отправку через post json {"phone": "11111111", "body": "WhatsApp API работает"}

const { Client,LocalAuth } = require('whatsapp-web.js');
const http = require('http');


const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
      
});


const requestListener = function (req, res) {
  if (req.method == 'POST') {
    
    var body_text = ''
    var number = ''
    req.on('data', function(data) {
        body_text += data
        console.log(body_text)
        const obj = JSON.parse(body_text)
        console.log(obj.phone);
        console.log(obj.body);
        number = obj.phone
        number = number.includes('@c.us') ? number : `${number}@c.us`;
        client.sendMessage(number, obj.body);
    })

    req.on('end', function() {
    res.writeHead(200, {'Content-Type': 'text/html'})
    res.end('ok')
  })


  } else {
    console.log(req.method);
    res.writeHead(200);
    res.end('Hello, World!');
  }

}

const server = http.createServer(requestListener);
server.listen(8080);

client.initialize();
Показать
user1671936; mihuilka; John_d; +3 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 207 08.06.22 12:21 Сейчас в теме
Думал, что Вацап в отличие от Телеги и Вайбера, вообще не дают бесплатный интерфейс для подобных вещей.
2. dima1c 36 08.06.22 12:48 Сейчас в теме
(1) так они и не дают, это хак посредством работы через веб форму. по идее если они переделают веб формы то всё слететь может.
adhocprog; CyberCerber; +2 Ответить
16. nomadon 357 08.06.22 16:25 Сейчас в теме
(2) кроме того что не дают, лицензионным соглашением запрещают такие действия
19. Apolonov-Erik 36 08.06.22 21:23 Сейчас в теме
(2)а мне все равно понравилось решение, а так с Вами согласен, как веб морду переделают все перестанет работать
30. John_d 4283 09.06.22 09:16 Сейчас в теме
(19) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
3. frkbvfnjh 714 08.06.22 13:13 Сейчас в теме
Слишком сложно, оно того не стоит, легче заставить пользоваться телегой
simuljakr; kbulygin; progersan; remix950; markers; vano-ekt; CagoBHuK; maksa2005; +8 3 Ответить
4. John_d 4283 08.06.22 13:18 Сейчас в теме
(3) Но контрагентов не заставишь перейти на телеграм. До этого менеджер 200 сообщений вручную набивала скопирует цифру из ексель вставит в ватсап.
nikolasx; JetBrain; ivanov660; +3 Ответить
7. ivanov660 3624 08.06.22 14:55 Сейчас в теме
(3) Бизнес ставит задачи и платит за это деньги.
nikolasx; +1 Ответить
8. vano-ekt 850 08.06.22 15:14 Сейчас в теме
(4) скажите, что пользуясь сабжем, они взаимодействуют с экстремистами, и на них уже пристально смотрят кое-откуда
21 марта 2022 года Тверской суд Москвы признал Meta экстремистской организацией в России
ixijixi; kbulygin; starik-2005; Apolonov-Erik; +4 Ответить
20. unknown181538 108 08.06.22 23:09 Сейчас в теме
(3) Насколько я понял, через телегу рассылку можно делать, только если контрагент подписан на специального бота.
Что не удобно для рассылки по контрагентам.
Я пришел к выводу, что телега подходит только для внутренних рассылок.
Или я ошибаюсь?
25. frkbvfnjh 714 09.06.22 07:40 Сейчас в теме
(20) Ну у нас наверное более скромные клиенты - мы просто говорим, что для рассылки нужно установить телеграм и создаем группу с ботом и добавляем всех кому нужна рассылка. Никто ни разу даже не спросил почему Телеграмм, или что они хотят получать рассылку только в вайбере. Просто - если нужна рассылка ставьте телеграмм, и проблем пока что не было.
31. John_d 4283 09.06.22 09:18 Сейчас в теме
(20) Все так и есть. Для внутренней рассылки используем телеграм бота.
5. ivanov660 3624 08.06.22 13:18 Сейчас в теме
В версии 8.3.23 уже реализована поддержка, возможно через 8-10 месяцев можно будет пощупать типовую реализацию.
mkostya; quazare; +2 Ответить
10. John_d 4283 08.06.22 15:22 Сейчас в теме
(5) чего поддержка реализована?
11. reset2 11 08.06.22 15:46 Сейчас в теме
(10) https://wonderland.v8.1c.ru/blog/plan-zadach-na-versiyu-8-3-23-platformy-1s-predpriyatie/

Поддержка интеграции с WhatsApp Запланирована

Но это было до....
21 марта 2022 года Тверской суд Москвы признал Meta экстремистской организацией в России
15. nomadon 357 08.06.22 16:19 Сейчас в теме
(11) т.к. нет API для обычного мессенджера, логично предположить, что будет для бизнес-аккаунта
18. Apolonov-Erik 36 08.06.22 21:14 Сейчас в теме
(5) да да, только платить придется в 1с )))
6. quazare 2603 08.06.22 14:44 Сейчас в теме
вопрос риторический - сколько просуществует ватсапп в России? 1-2 года?

и, мне кажется, он морально устарел и функционально недостаточен уже.....
KilloN; Apolonov-Erik; Fox-trot; +3 Ответить
9. John_d 4283 08.06.22 15:21 Сейчас в теме
(3) Кстати про телеграм. Такую задачу в телеграмме не так то просто решить. Бот в телеграме не умеет слать личные сообщения пользователям (даже если мы бы знали их id). Бот в телеграме умеет слать сообщения в группы и каналы, т.е. надо создать 200 групп по группе на контрагента и слать ботом уже в эту группу сообщение (как-то не очень красиво)
AlexandrSmith; unknown181538; +2 Ответить
12. ra9000 9 08.06.22 15:54 Сейчас в теме
(9) Я написал обработку для отправки ботом - личных сообщений, В 1с-ке привязал id клиента в этом боте, и шлю сообщения.
Решение заняло 2 дня, причем все реализовано на 7.7
KilloN; quazare; +2 Ответить
21. unknown181538 108 08.06.22 23:11 Сейчас в теме
(12) Ну это нужно не телефон клиента, а ID, что достаточно неудобно.
Я делал для внутренней рассылки через бота - сотрудник подписывается на бота, и после этого сообщения получает уже в личку.
14. nomadon 357 08.06.22 16:18 Сейчас в теме
(9) можно не просто бота запускать, а юзер бота. Но это, как и в whatsapp`e, пока не достигнешь лимита новых пользователей = бан.
24. KOTzilla 6 09.06.22 05:10 Сейчас в теме
(9)
Бот в телеграме не умеет слать личные сообщения пользователям

Личные сообщения бот слать может, если мне не изменяет память, бот не может инициировать начало беседы. Т.е. пользователь должен начать беседу первым, тем самым подтверждая, что этот бот, для него(пользователя), желанный собеседник=) как бы защита от спама, я это так понимаю.
36. Sergey_Borisovi4 87 09.06.22 12:26 Сейчас в теме
(9) Есть библиотека Telethon - позволяет слать сообщения от имени пользователя, а не бота. Типа альтернативное api.
13. nomadon 357 08.06.22 16:16 Сейчас в теме
Делал на этой библиотеке импорт сообщений менеджеров по расписанию в 1с (текст, картинки, звук). Просмотр истории в отчете с открытием картинок.
Все крутится на сервере в фоновом задании по расписанию, авторизация каждого пользователя индувидуальна, в окне 1с рисуется QR для сканирования.
Располагая на серверной части можно централизовано обновлять библиотеку (потому что она обновляется и иногда без обновлений просто не работает - в интерфейсе 1с жмакая кнопку обновить) и не требует доступов и административных установок на терминале/клиенте, работает в вэб-клиенте.
17. krasnodar-it 08.06.22 19:13 Сейчас в теме
Делал аналогичный проект пару лет назад, работает и посей день, менеджерам особо нравится кнопка в печатных формах "Отправить мне" далее уже самостоятельно взаимодействуют с клиентом пересылая файл им
22. CheBurator 3077 09.06.22 02:11 Сейчас в теме
"Всплывает окно авторизации в Whatsapp (авторизоваться должен пользователь от чего номера будет рассылка)."
не понял, автоматом все-таки рассылка делается или нужны какие-то интерактивнеы действия пользователя (нажатие на кнопку "разослать" таковым не считаем, можем ив фоне по расписанию...)?
28. John_d 4283 09.06.22 09:10 Сейчас в теме
(22) у меня все в клиенте происходит.
Для автоматической рассылки нужно будет где-то держать запущенный бот в клиенте. Этому боту скидывать сообщения для рассылки и он будет их рассылать, но тогда рассылка будет идти с левого номера (бота).
23. lihomanov 83 09.06.22 03:14 Сейчас в теме
Доброго времени суток!
Подскажите пожалуйста как отправить файл ?
26. apic 9 09.06.22 07:44 Сейчас в теме
Меня больше интересует, почему ввиду санкций ватсапп до сих пор работает на территории РФ? Так то надо было запретить, как ни как запрещенная организация работающая гос. деп. омерики.
27. Мастер1С 776 09.06.22 08:46 Сейчас в теме
Какие-то изменения у ватсап, буквально вчера. Как бы не отвалилась ваша доработка.
29. John_d 4283 09.06.22 09:15 Сейчас в теме
(27) просто нужно будет загрузить новую версию
npm i whatsapp-web.js
В (13), (17) написали что этот метод у людей работает без проблем несколько лет.
32. AlexandrSmith 69 09.06.22 10:08 Сейчас в теме
Очень понравилось решение.
33. ManyakRus 455 09.06.22 10:22 Сейчас в теме
я сделал то же самое на языке golang - получился .exe один исполняемый файл, который может быть сервером-прослойкой для 1С. Так ещё лучше :-)
35. user662573_rx-tx 09.06.22 11:27 Сейчас в теме
Решение имеет место быть. В конце концов это решение конкретной задачи автора, и она встречается частенько.
Спасибо за труд!)
37. Светлый ум 277 10.06.22 05:41 Сейчас в теме
38. Serega-artem 15 10.06.22 13:37 Сейчас в теме
Очень любопытная тема! Плотно работаем с вотсапом, но сейчас через посредника, неофициальное api. Деньги небольшие, тут проблем нет, но качество услуги сильно через... Будем смотреть ваше решение, спасибо за инструкции.
nikolasx; John_d; +2 Ответить
39. Alexez 76 14.06.22 13:06 Сейчас в теме
Круто я реализовал отправку через post json {"phone": "11111111", "body": "WhatsApp API работает"}

const { Client,LocalAuth } = require('whatsapp-web.js');
const http = require('http');


const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: { headless: false }
});

client.on('qr', (qr) => {
    // Generate and scan this code with your phone
    console.log('QR RECEIVED', qr);
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', msg => {
    if (msg.body == '!ping') {
        msg.reply('pong');
    }
      
});


const requestListener = function (req, res) {
  if (req.method == 'POST') {
    
    var body_text = ''
    var number = ''
    req.on('data', function(data) {
        body_text += data
        console.log(body_text)
        const obj = JSON.parse(body_text)
        console.log(obj.phone);
        console.log(obj.body);
        number = obj.phone
        number = number.includes('@c.us') ? number : `${number}@c.us`;
        client.sendMessage(number, obj.body);
    })

    req.on('end', function() {
    res.writeHead(200, {'Content-Type': 'text/html'})
    res.end('ok')
  })


  } else {
    console.log(req.method);
    res.writeHead(200);
    res.end('Hello, World!');
  }

}

const server = http.createServer(requestListener);
server.listen(8080);

client.initialize();
Показать
user1671936; mihuilka; John_d; +3 Ответить
40. John_d 4283 15.06.22 09:40 Сейчас в теме
41. UPKA 17.06.22 11:44 Сейчас в теме
Подскажите, каждый раз перед отправкой нужно сканировать QR? А если допустим мне необходимо в фоне отправлять сообщения? Как быть? Предположим имеется один номер телефона на все рассылки.
42. John_d 4283 17.06.22 13:04 Сейчас в теме
(41) Можно один раз отсканировать и больше не закрывать бота, так и держать открытым (делать это надо на отдельном компьютере). Этому боту скидывать сообщения для рассылки и он будет их рассылать
43. UPKA 17.06.22 13:12 Сейчас в теме
(42)Подскажите, а на этом же ПК нельзя запускать скрипт?
44. John_d 4283 17.06.22 13:20 Сейчас в теме
(43)Можно. Просто тогда не закрывайте этот скрипт.
Оставьте свое сообщение

См. также

GGraphics - внешняя компонента для работы с картинками jpg (jpeg), png, bmp, gif, tif Промо

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    68513    65    253    

Бесплатная отправка сообщений в Whatsapp бот из 1С

Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: Имеются 200 контрагентов, которым ежедневно нужно из отчета 1С выслать сумму их задолженности или предоплаты в Whatsapp (рассылка должна идти с номера менеджера этих контрагентов).

2 стартмани

08.06.2022    6810    26    John_d    44    

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    6005    John_d    73    

Создание стартовой базы

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

11.10.2021    11092    20    sapervodichka    48    

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 Промо

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

31.01.2019    97562    bonv    242    

ТСД на JavaScript (кроссплатформенный, бесплатный)

Терминал сбора данных Бесплатно (free)

Написал ТСД на JavaScript. ТСД не требует установки драйверов (работает в режиме клавиатуры). Будет работать на любом устройстве, где можно установить chrome.

07.09.2021    6241    John_d    114    

Внешняя компонента на C# для парсинга страниц через Phantom JS на сервере 1С х32,х64

Инструментарий разработчика Разработка внешних компонент WEB-интеграция Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PhantomJS - это браузер без окна, используемый для автоматизации взаимодействия с веб-страницами. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, снимки страницы, эмуляции поведение пользователя, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в автономной системе, такой как среда непрерывной интеграции . PhantomJS основан на WebKit, что делает его похожей на Safari и Google Chrome средой просмотра. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD.

1 стартмани

06.08.2020    9612    6    DrZombi    7    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

WEB-интеграция Платформа 1С v8.3 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    10386    RPGrigorev    3    

Регулярные выражения без внешних компонент? Легко! Промо

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.

04.03.2016    78099    starik-2005    111    

Универсальные инструменты 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    71388    7125    cprit    210    

Хранение файлов - как уменьшить размер базы данных

Инструменты администратора БД Платформа 1С v8.3 Россия Бесплатно (free)

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

09.09.2019    10718    2tvad    19    

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

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

21.06.2019    37343    Evil Beaver    152    

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

Универсальные обработки Рабочее место Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Абонемент ($m)

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

2 стартмани

28.08.2017    50459    196    Bazil    32    

Немного о графических файлах. Сжатие. Распознавание текста

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

06.05.2019    12032    12    tusv    7    

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019    38048    starik-2005    183    

HTML-клиент у конфигурации 1С

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    23772    Smaylukk    122    

Gant 1C 2.* - диаграмма Ганта с таблицей + Планировщик + Отчет (8.1, на управляемой форме/Такси 8.2, 8.3) Промо

Бюджетирование и планирование Готовая продукция, работы и услуги Учет рабочего времени Управление задачами (Task Manager) Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Внешняя обработка, аналог MS Project в 1Се для работы с задачами: параллельный ввод данных по задачам и график Ганта, дополнительный режим в виде календаря (планировщик), связывание задач и пересчет длительности и дат с учетом выходных, видов связей и запаздываний, расчет затрат, сохранение/открытие проектов в файл на диск или файл ИБ, импорт/экспорт документов Microsoft Project.

1 стартмани

02.12.2011    161492    2689    rare-avis    216    

Уменьшаем трафик: HTTP запрос со сжатием GZIP средствами 1С. На примере выгрузки файлов на Яндекс-диск

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка демонстрирует отправку тела HTTP запроса со сжатием gzip (метод deflate) средствами платформы 1С. Демонстрация происходит на примере отправки текста или файла на Яндекс.Диск.

1 стартмани

03.09.2018    10224    73    uno-c    8    

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    27010    136    Malfarion    24    

Создание подключаемой обработки табличной части с диалогом запроса параметров заполнения (управляемые формы)

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

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

1 стартмани

03.05.2018    86308    Mirage78    26    

Маркировка: 2D Android Штрихкод сканер + драйвер устройства для 1С Промо

Сканер штрих-кода Розничная торговля Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Абонемент ($m)

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

3 стартмани

29.11.2016    60063    205    dreamadv    118    

Обработка печатной формы WORD клиент-сервер УФ

Инструментарий разработчика Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Это моя первая статья на данном портале, но попытаюсь изложить все понятно и подробно. Долгое время у меня заняло создание такой вот внешней обработки. Есть очень много примеров, как сделать подобное на неуправляемых формах (2.0) и очень мало информации касательно управляемых(3.0), по крайней мере я многого найти не смог в доступе. Создание подобное обработки выглядит вполне несложно, если производить все действия на сервере, как это было с 2.0, но в нашем случае необходимо инициализировать открытие документа на клиенте, чему сильно мешает отсутствие возможности передать макет Active Document с сервера на клиент.

2 стартмани

14.03.2018    31496    LeoKeyn    44    

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

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

19.11.2017    279824    MaxS    443    

Удаление организации из 1С. Чистка базы 1С. Удаление "не удаляемых" объектов Промо

Чистка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Удалить все документы, чтобы в базе осталась только одна организация со своими документами? Удалить всю информацию в регистрах, не связанную с указанной фирмой? Удалить "неудаляемую" номенклатуру? Легко! Используйте эту обработку.

10 стартмани

02.10.2015    70409    340    spy-83    83    

Зачем 1С-нику NoSQL и CRDT

WEB-интеграция Бесплатно (free)

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

12.08.2017    24951    unpete    27    

Как я стал одинэсником и переехал из провинции в Москву

О жизни Россия Бесплатно (free)

История покорения Москвы.

29.07.2017    19032    DmitryKSL    138    

54 ФЗ своими руками

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Розница Розничная и сетевая торговля (FMCG) Россия Управленческий учет Бесплатно (free)

Практический опыт внедрения изменений в 54ФЗ в розничной сети, работающей на 1С. Если вы не хотите платить каким-либо подрядчикам, которые "всё сделают и настроят за вас", то статься может оказаться крайне полезной.

17.04.2017    59637    comol    124    

Монитор журнала регистрации Промо

Журнал регистрации Инструменты администратора БД WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

29.06.2015    48018    162    andy23    51    

Формирование штрихкода EAN-13 в SVG с помощью XDTO

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

В версии платформы 8.3.9 было объявлено о поддержке изображений в формате SVG. Данная обработка демонстрирует работу с данным форматом, а именно его формированием (рисованием). Ну а так как самой популярной картинкой в 1С, наверное, является картинка штрихкода EAN - ее я и решил рисовать.

1 стартмани

24.03.2017    16322    65    kot-stas    22    

План обмена в формате "EnterpriseData" для 1С 7.7

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Пример организации надёжной синхронизации данных через универсальный формат "EnterpriseData" между конфигурациями на базе 1С 7.7 и произвольными приложениями.

1 стартмани

07.01.2017    29794    27    binex    23    

"Распределение в запросе" или "избавляемся от перебора"

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    40324    alexandersh    52    

Опыт оптимизации и контроля производительности в БД с 3000 пользователей Промо

HighLoad оптимизация Бесплатно (free)

Данная статья написана по материалам доклада, прочитанного на Конференции Инфостарта IE 2014 29-31 октября 2014 года. Меня зовут Сергей, являюсь руководителем отдела оптимизации и производительности систем в компании "Деловые линии". Цель этого доклада – поделиться информацией о нашем опыте работы с большой базой на платформе 1С, с чем пришлось столкнуться, как удалось обеспечить работоспособность. Уверен, что вам будет интересно, так как подобной информацией мало кто делится, да и про само существование таких систем их владельцы стараются не рассказывать, максимум про это «краем глаза» упоминают участвовавшие в проекте вендоры. **update от 04.03.2016 по вопросам из комментариев

05.08.2015    69888    Sergey.Noskov    119    

Редактирование табличной части объекта с помощью СКД

Инструментарий разработчика Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

2 стартмани

16.09.2016    40650    137    Hatson    30    

Примеры скриптов на OneScript

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

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

1 стартмани

14.07.2016    36715    57    Drak0n    44    

Автоматический REST-сервис в «1С:Предприятии». OData. Пример работы из Jscript/AJAX Промо

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Небольшой обзор REST-сервиса в «1С:Предприятии». Рассмотрен механизм работы c REST-сервером 1С:Предприятия из внешнего приложения - веб-страницы с использованием языка JavaScript и технологии AJAX.

1 стартмани

08.10.2014    91980    137    vano-ekt    48    

Набор данных Объект в СКД для решения задач сортировки, нумерации и вывода в отчет произвольных наборов данных

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

04.07.2016    71784    lopatin    13    

Учет путевых листов

Обработка документов Печатные формы Учет рабочего времени Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бухгалтерский учет Управленческий учет Абонемент ($m)

Внешняя обработка по учету путевых листов для управляемых форм. Позволяет сохранять во внешнем файле данные об автомобилях, водителях и путевых листах. Позволяет печатать формы №3 и №4-П. Позволяет вести учет задолженностей водителей за бензин и сравнивать расход по норме (по показаниям спидометра) и фактический расход бензина.

3 стартмани

27.06.2016    20561    82    DrugOn    10    

Google Analytics API, Oauth2.0 и 1c8

WEB-интеграция Платформа 1С v8.3 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Обращение к Google Analytics API, Протокол Oauth 2.0 и запросы от 1С:8 без авторизации пользователя

02.05.2016    28453    Ольга_tmp    18    

Создание внешних печатных форм под управляемым приложением с нуля Промо

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

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

1 стартмани

05.06.2014    354346    signum2009    133    

УПД для документа "Поступление товаров и услуг" (БП 3.0) за поставщика

Печатные формы Оптовая торговля Готовая продукция, работы и услуги Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Внешняя печатная форма для документа "Поступление товаров и услуг" позволяет печатать "Универсальный передаточный документ (УПД)" за поставщика в ред. постановления Правительства РФ 1137, 625 и 981

1 стартмани

20.12.2015    25698    279    romanco    18    

Автозаполнение адресов в 1С (API Google autocomplete place)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье вы увидите пример, как можно с помощью API Google autocomplete place делать подсказки при заполнении адреса

19.10.2015    14343    d.alexandr    27    

Использование встроенных отчетов для создания анализа корректности данных при исчислении НДС с авансов полученных

Оптовая торговля Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет НДС Бесплатно (free)

На Инфостарте много выложено внешних отчетов, направленных на контроль правильности исчисления НДС с авансов полученных. Хочу поделиться своим опытом использования встроенного отчета (для Бухгалтерия предприятия.Редакция 3.0) и порядка создания настроек отчета для процедур контроля за исчислением НДС с авансовых платежей покупателей, особенно в случаях применения различных налоговых ставок НДС

1 стартмани

22.07.2015    9328    lvk74    3    

Подписываем файлы с помощью ЭЦП средствами 1с Промо

Универсальные обработки Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.09.2013    84085    485    anig99    29    

1С Бухгалтерия 8. Часть 1: Настройка параметров учета Промо

Регламентированный учет и отчетность Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет Бесплатно (free)

Залогом правильного ведения бухгалтерского и налогового учета в программе 1С Бухгалтерия 8 является правильная настройка параметров учета и учетной политики. Разработчики 1С постарались, чтобы эти настройки были простыми и понятными. Тем не менее, есть ряд подводных камней, о которые могут спотыкаться даже опытные пользователи.

05.11.2011    231789    vdi1950    124