Платежная система ГПБ для Битрикс

Разработан модуль платежной системы ГазпромБанк для Bitrix D7. По вопросам приобретения — обращайтесь. Не выкладываю бесплатно, т.к. довольно долго возюкался, хочу вознаграждение 😉

1C: Выборка из регистра сведений «Срез последних» не делает выборки, хотя записи в регистре есть

Очень часто проблема в том, что в запросе идёт выборка по условию из РЕСУРСА а не из измерения. Особенность выполнения запроса в 1С по «срезу последних» такова, что сначала делается выборка последних из измерений, а уже затем из ресурсов. Соответственно если в срезе последних по выбранным измерениям нет ресурса, то ничего и не вернётся.

Однако есть способ, заставить 1С выбрать «наоборот». Т.е. сначала делается выборка всего из условия в ресурсе, а затем из ник делается выборка по срезу последних. Достаточно вынести условие в параметры виртуальной таблицы.

1С:Проверка блокировки документа перед его изменением

Ошибка: в высоко нагруженном приложении с бекендом на 1С, возникают ситуации с одновременным изменением части данных одного из документов. Соответственно возникала ошибка

Решение: перед изменением документа, ждем его разблокировки:

JavaScript: добавить лидирующий 0 к числу

Задача: добавить к числу лидирующий 0, если число однозначное, и не добавлять соответственно, если двухзначное.

Решение: есть два способа, старый, работающий во всех браузерах, и новый — для браузеров 2018 года и новее.

Способ 1:

Способ 2:

Чудесатые чудеса с выгрузкой заказов между 1С и Bitrix

Началось всё с того, что после настройки обмена мeжду Bitrix и 1С, заказы в 1С не прилетали. Посмотрел логи, подебажил код обмена и , увидел чудную ошибку «Transferred a partial file» при попытке получить файл заказов. Что при файловом варианте, что при серверном. Причем из браузера (по этой методике), файл открывался и корректно формировался. Просмотр логов сервера apache, добавил еще одну ошибку:

Гуглинг объяснил, что это возможно ошибка в настройках ngnix. Совместно с хостером, попытались пару настроек изменить, после чего хостер сказал «ничё не знаю, у нас всё нормально». Доступа к настройкам сервера к сожалению нет — только через хостера.

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

Единственной задачей которого было выплюнуть уже готовый файл.

В 1С попробовал:

И получил ровно ту-же ошибку в 1С: Transferred a partial file. Шта??? Круг подозреваемых сузился. Стал винить во всем реализацию HTTPСоединение в 1С. А что если попробовать изобрести свою замену? Родил врезку в модуль обмена с сайтом:

Работает.. Заказы в 1С появились..

Жизнь замечательных грибов