q_i

577
Рейтинг

q_i



  •   Регистрация: 22.03.2010 (14 лет назад)

  •   Был(а) на сайте: 19.04.2024

Друзья
  • Александр Колебошин
Подписчики 16

Группы

Профессиональный разработчик

Рейтинг 577

Конфигурация "Казначей группы (класса/команды/...)"

Инструменты и обработки Для всех Платформа 1С v8.3 Общественные и некоммерческие структуры Обучение, бизнес-тренинг, курсы Развлечения, искусство, спорт Домашние учет и финансы Управленческий учет Абонемент ($m) Архив с данными Разное Взаиморасчеты

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

1 стартмани

03.11.2023    715    3    q_i    0       

11

Отправка ошибок из журнала регистрации на почту

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Журнал регистрации Email рассылки

Обработка для отправки списка вчерашних ошибок из журнала регистрации на электронную почту. Подключается как внешняя обработка с запуском по расписанию. Для работы требует БСП. Тестировалось на платформе 8.3.21.1607 и конфигурации Бухгалтерия предприятия КОРП 3.0.122.97.

1 стартмани

10.11.2022    4108    9    q_i    9       

14

Обезжиривание шрифта в печатной форме (экономим тонер)

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

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

1 стартмани

24.05.2022    3655    1    q_i    4       

7

Загрузка выпусков подкаста Радио 1С Энтерпрайз

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

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

29.04.2022    1484    q_i    9       

17

Про простой и понятный код

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

Внимание! Данная публикация с большой долей вероятности не добавит ничего нового к Вашим знаниям и Вашему опыту, поэтому если Вы читаете Инфостарт исключительно для целей "прокачки" своих навыков, не тратьте на её чтение своё время и перейдите сразу к следующей!

03.12.2021    6403    q_i    161       

74

Файл тестов для xUnitFor1C: тестирование проведения документов

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

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

30.06.2020    11514    61    q_i    16       

25

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

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

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

1 стартмани

06.01.2018    16389    5    q_i    8       

8

Комментарии

DevKeyPad для 1С-ника#12 07.12.23 19:41
Развивая эту идею, предлагаю универсальную клавиатуру для 1с-ника

Прикрепленные файлы:

keyboard1c.png
UpdateCFОбновление релиза БП 3 на БП 3.0.143.42#19 16.11.23 11:51
1. Удаляем все патчи: Администрирование / Обслуживание / Установленные исправления (патчи); выделить все, нажать "Удалить исправление"
2. Устанавливаем все патчи: Администрирование / Интернет-поддержка и сервисы / Обновление версии программы / Обновление программы; оставить только флажок "Исправления патчи" и выполнить обновление.
3. Профит.
AdminОтправка ошибок из журнала регистрации на почту#9 07.11.23 0:04
(8) Из одной. Для конфигураций с БСП лучше использовать рассылку отчётов, как посоветовали в (1)
БУКонфигурация "Казначей группы (класса/команды/...)"#0 03.11.23 15:30
Нано- (даже не микро- !) конфигурация для тех, кто выступает в роли казначея класса/группы/команды, и в чьи задачи входит сбор денег с участников за участие в каких-то мероприятиях, а потом передача собранных денег организаторам этих мероприятий.
DevОшибки при работе с хранилищем конфигурации и способы их решения#40 22.03.23 13:17
(33) Сегодня поймали "Ошибочный порядок записи XML". Отключение/подключение пользователей не помогло. Причина оказалась тривиальной: на сервере хранилища осталось всего 5Гб свободного места, и оно выедалось в ноль при подключении тестовой базы к хранилищу, после чего вываливалась эта ошибка. Добавили свободного места, база подключилась без проблем.
ПубликацииТестирование прав доступа к объектам с помощью xddTestRunner / Vanessa-ADD#3 30.01.23 11:33
1. Ну вот - теперь такая обработка не только написана, но ещё и в общем доступе. )) В ней можно задать любую свою логику контроля прав в ЗаполнитьНаборТестов(), т.е. прописать там какому пользователю что можно, а что нельзя, и после этого подёргать за ТестДолжен_ПроверитьЕстьДоступ()/ТестДолжен_ПроверитьНетДоступа().
2. Согласен, что тема значительно шире, чем она раскрыта в данной публикации. Но нельзя объять необъятное, поэтому я взялся за то, что, как мне кажется, нужно проконтролировать в первую очередь. В конце концов, если выбирать между вариантом, что пользователь увидит "объект не найден" и вариантом, что он увидит сам объект во всём своём великолепии, то очевидно, что второй вариант куда более неприятен и чреват негативными последствиями.
ПубликацииТестирование прав доступа к объектам с помощью xddTestRunner / Vanessa-ADD#0 30.01.23 5:00
Проверка прав доступа пользователей к объектам информационной базы с помощью xddTestRunner / Vanessa-ADD.
AdminОтправка ошибок из журнала регистрации на почту#7 07.12.22 12:53
(6) Нет, мне не надо, спасибо! У меня у самого модулей хватает. ))
Просто я в своём "длинном 2-часовом" коде привёл вполне работоспособный прототип (нужно лишь заполнить <токен-телеграм-бота> и <идентификатор-чата> и вызывать ОтправитьВТелеграм()), а Вы в своём "лаконичном 5-минутном" привели лишь часть кода. А вдруг это лишь верхушка айсберга, а под водой скрыт ещё более длинный "3-часовой" код? Тогда я выиграл! ))
Насчёт "&" - искренне желаю Вам, чтобы этот символ и дальше не появлялся в отправляемых Вами сообщениях (как и некоторые другие, которые потенциально могут поломать параметры GET-запроса). Хотя по мне, так стоит припользовать хотя бы что-то вроде URLEncode, а ещё лучше POST вместо GET, но это вкусовщина, разумеется. В любом случае Вам удачи!
AdminОтправка ошибок из журнала регистрации на почту#5 07.12.22 12:30
(4) Мой код я выдрал из моей более обширной конфигурации, в которой помимо отправки есть ещё получение+обработка сообщений. Соответственно, оттуда и прилетела хоть и многословная, но достаточно универсальная функция Телеграм_ОтправитьКоманду().
Впрочем, каждый волен отправлять запросы на api.telegram.org тем кодом, который ему больше нравится. )))
Кстати, в Вашем листинге нет функции jsonПрочитатьПлатформой(). И, конечно, интересно посмотреть на результат работы Вашего кода, если в переменной НовыйТекстСообщения встретится символ амперсанда "&" ;)
AdminОтправка ошибок из журнала регистрации на почту#3 07.12.22 12:08
(2) Не вижу препятствий, для тех, кому это действительно нужно ))
Тем более, что вопрос решается тривиальной отправкой POST-запроса.
Вот, например:

Код
Функция Телеграм_ОтправитьКоманду(ИмяКоманды, ПараметрыКоманды, Таймаут = 60) Экспорт

   Результат = Новый Структура("Успех, ОтветТГ, ТекстОшибки", Ложь, Неопределено, "Неизвестная ошибка");
   
   Сервер = "api.telegram.org";
   Порт = 443;
   Токен = "<токен-телеграм-бота>"; // ОбщегоНазначенияПовтИсп.ПолучитьТокен();
   Адрес = "/bot" + Токен + "/" + ИмяКоманды;
   
   HTTPСоединение = Новый HTTPСоединение(Сервер, Порт,,,, Таймаут, Новый ЗащищенноеСоединениеOpenSSL);
   
   HTTPЗапрос = Новый HTTPЗапрос(Адрес);
   HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
   
   ЗаписьJSON = Новый ЗаписьJSON;
   ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет);
   ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
   ЗаписьJSON.ЗаписатьНачалоОбъекта();
   Для Каждого КлючИЗначение Из ПараметрыКоманды Цикл
      ЗаписьJSON.ЗаписатьИмяСвойства(КлючИЗначение.Ключ);
      ЗаписьJSON.ЗаписатьЗначение(КлючИЗначение.Значение);
   КонецЦикла;
   ЗаписьJSON.ЗаписатьКонецОбъекта();
   ПараметрыЗапроса = ЗаписьJSON.Закрыть();
   
   HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);

   //ДобавитьВЛог(СтрШаблон("Запрос (ТГ): %1;
   //               |Параметры:
   //               |%2", Адрес, ПараметрыЗапроса));
   
   HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

   ПараметрыОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
   КодСостояния = HTTPОтвет.КодСостояния;
   
   //ДобавитьВЛог(СтрШаблон("Ответ (ТГ): %1;
   //               |Параметры:
   //               |%2", HTTPОтвет.КодСостояния, ПараметрыОтвета));
   
   Если КодСостояния <> 200 Тогда
      Результат.ТекстОшибки = СтрШаблон("Ошибка отправки команды '%1'. Сервер вернул код состояния %2.", ИмяКоманды, КодСостояния);
      Возврат Результат;
   КонецЕсли;
   
   ЧтениеJSON = Новый ЧтениеJSON;
   ЧтениеJSON.УстановитьСтроку(ПараметрыОтвета);
   ОтветТГ = ПрочитатьJSON(ЧтениеJSON);
   ЧтениеJSON.Закрыть();

   Если НЕ ОтветТГ.Ok Тогда
      Результат.ТекстОшибки = СтрШаблон("Ошибка выполнения команды '%1'. Причина: %2.", ИмяКоманды, ОтветТГ.description);
      Возврат Результат;
   КонецЕсли;

   Результат.Успех = Истина;
   Результат.ОтветТГ = ОтветТГ;
   Результат.ТекстОшибки = "";
   
   Возврат Результат;
   
КонецФункции

Функция Телеграм_ОтправитьСообщение(ИдЧата, ТекстСообщения) Экспорт 

   Результат = Неопределено;
   
   ИмяКоманды = "sendMessage";
   ПараметрыКоманды = Новый Структура;
   ПараметрыКоманды.Вставить("chat_id", ИдЧата);
   ПараметрыКоманды.Вставить("text", ТекстСообщения);

   РезультатОтправки = Телеграм_ОтправитьКоманду(ИмяКоманды, ПараметрыКоманды);
   Если НЕ РезультатОтправки.Успех Тогда
      //ДобавитьВЛог(РезультатОтправки.ТекстОшибки);
      Возврат Неопределено;
   КонецЕсли;

   ОтветТГ = РезультатОтправки.ОтветТГ;
   
   Результат = ОтветТГ.result.message_id;
   
   Возврат Результат;
   
КонецФункции

Процедура ОтправитьВТелеграм()
   
   ТекстСообщения = "Я к вам пишу — чего же боле?
               |Что я могу еще сказать?";
   
   Телеграм_ОтправитьСообщение(<идентификатор-чата>, ТекстСообщения);
   
КонецПроцедуры