INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Баданов Владимир | Старший программист | 1С-Коннект

«Роль платформы 1С:Предприятие в сервисе 1С-Коннект»

- Сервис 1С-Коннект использует почти вся партнерская сеть 1С: 500 тыс. пользователей, 120+ тыс. ежедневно, рост трафика 2+ раза ежегодно. - Используемые продукты и технологии: xmpp, erlang, go, python, rabbitMQ, телефония, туннелирование, 4 СУБД: 1С: Предприятие (PostgreSQL+MSSQL), PostgreSQL, REDIS, MongoDB, описание ролей. - Администрирование сервиса осуществляется через конфигурацию 1С: написана с нуля, эксплуатация как SaaS, на одном сервере, без использования БСП, регламентные задания, PUSH-Sync, PartnerAPI, рассылки, отчёты. - Нагрузка, размер БД, способы оптимизации запросов: используем отбор по индексам, виртуальные таблицы, СКД в динамических списках, регистры сведений, разделение ИБ не используем. - RLS пережил два поколения. Система доступа оперирует сотней микро-ролей и назначает только нужные. - Интеграция: взаимодействие с другими частями инфраструктуры, API, проблемы первой версии, найденные решения - журналирование, ограничения на вызовы, гибкие входные параметры, пакетные вызовы. - Цикл производства: параллельная разработка выпусков. Ручное тестирование и автотесты (сценарные + API), обновление через механизм поставок, EDT+GIT. Трекер.

0. zhichkin 251 04.06.16 01:40 Сейчас в теме

T-SQL + 1С: нумерация записей табличных частей и наборов регистров по порядку

Обработка данных больших баз 1С часто выполняется средствами SQL. Это может быть свёртка или какая-то другая задача. После выполнения команды DELETE может нарушиться последовательность нумерации записей табличной части или набора регистра. Это может привести к неприятным последствиям, если её не восстановить. В данной публикации приводится достаточно простое решение этой проблемы.

Перейти к публикации

Комментарии
Сортировка: Древо
1. Danil.Potapov 344 10.01.17 11:13 Сейчас в теме
А что говорит служба поддержки 1с?
2. zhichkin 251 10.01.17 11:17 Сейчас в теме
(1) Вы про пресловутое лицензионное соглашение для 1С:Предприятие 8 ?
Ну, как всегда, автор не рекомендует повторять это дома, так как все трюки выполнены профессионалами =)
3. Danil.Potapov 344 10.01.17 11:19 Сейчас в теме
(2) да не, мне на это все равно. Служба поддержки 1с подтвердила такую ошибку в платформе?
4. zhichkin 251 10.01.17 11:23 Сейчас в теме
(3) Это не ошибка платформы. Я встречался с такими нетиповыми конфигурациями, где допускается иметь движения документа с разными значениями периода ... Вот как бывает =) Кроме этого, статья имеет практический смысл при работе с табличными частями средствами SQL Server. Я об этом упоминаю в конце статьи.
5. Danil.Potapov 344 10.01.17 11:27 Сейчас в теме
(4) подожди, в статье идет речь про то, что платформа допускает запись в регистр накопления записи пронумерованные не по порядку и если их перечитать и записать, то добавляет еще одну запись. Пока нашел в списке ошибок платформы 8.3 только ошибку нумерации набора записей регистра бухгалтерии (https://bugboard.v8.1c.ru/error/000023566.html). На каком релизе платформы была эта ошибка?
6. zhichkin 251 10.01.17 11:33 Сейчас в теме
(5) Ах, Вы об этом ... Ну, да, есть такая шляпа. Просто если не шаманить на SQL, то подобную штуку не воспроизвести. По этому я в службу поддержки 1С не обращался. Релиз платформы на тот момент времени (июль 2016 года) я использовал последний. Думаю это было что-то типа 8.3.5. Да и суть статьи опять же была не в этом. Ошибку я обнаружил, можно сказать, по ходу дела, тестируя результаты свёртки.
7. Danil.Potapov 344 10.01.17 11:35 Сейчас в теме
(6) понял, не надо так пугать, думал что уже платформа разучилась нормально нумеровать записи.
8. METAL 90 02.03.18 14:45 Сейчас в теме
Не совсем по теме, но всё же позволю себе поинтересоваться, может знаете:
_RecorderTRef - какое значение какому типу документа соответствует, можно ли узнать как-то программно в 1С либо запросом к какой-то таблице в SQL?
Спасибо!
9. zhichkin 251 02.03.18 15:59 Сейчас в теме
(8) Программно средствами языка 1С это можно узнать следующим образом:
Отбор = Новый Массив();
Отбор.Добавить(Метаданные.Справочники.Номенклатура);
ТаблицаМетаданных = ПолучитьСтруктуруХраненияБазыДанных(Отбор, Истина);
Инфо = ТаблицаМетаданных.Найти("Основная", "Назначение");
ИмяТаблицыSQL = Инфо.ИмяТаблицыХранения;

Переменная ИмяТаблицыSQL будет содержать что-то вида _Reference41. Число в конце наименования таблицы, в данном случае это 41, будет именно тем, что Вам нужно - кодом типа 1С, которое сохраняется в полях вида _[ИмяПоляТаблицы]TRef.
10. zhichkin 251 02.03.18 16:03 Сейчас в теме
(8) Имейте в виду, что если восстановить базу из dt-файла, то все коды типов 1С при загрузке генерирует заново!
11. zhichkin 251 02.03.18 16:10 Сейчас в теме
(8) На всякий случай: 41 не равно 0х41 =) Используйте в SQL коде преобразование int в binary(4).
CAST(41 AS binary(4))
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
Полный день

Удаленный программист 1С (от 800 до 1200 руб в час)
Санкт-Петербург
По совместительству

Программист 1С
Ростов-на-Дону
Полный день

Программист 1С
Москва
зарплата от 65 000 руб.
Полный день

Бизнес-аналитик 1С
Санкт-Петербург
Полный день