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

Публикация № 1777777 23.05.23

Разработка - Механизмы типовых конфигураций

контактная информация JSON БСП ЗУП УПП адресный классификатор

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

Опишу, в чём суть задачи, с которой столкнулся...

-- Делаю свой инструмент для переноса данных из УПП/ЗУП 2.5 в ЗУП 3.1.

-- Контактная информация - это часть переносимых данных.

-- Оказалось, что со времен "царя" никто адреса не правил. Т.к. организации 20 лет, то ровно на столько устарели введённые данные.

-- Структура хранения, мягко говоря, не совпадает

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

 

Статья будет довольно объёмная. Состоит она из двух частей:

1. Общая информация и простые приемы работы с контактной информацией.

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

 

Рассмотрим всё по порядку...

 

Структура хранения информации

 

Во всех старых конфигурациях мы привыкли к регистру сведений "Контактная информация" с такой вот структурой:

 

 

Ресурсы с названием "Поле1"-"Поле10" имеют текстовый тип значения. А вот "ТипДома", "ТипКорпуса" и "ТипКвартиры" - это перечисления.

Чтоб раскидать это в нормальную структуру, нужно написать такой код:

ЗначенияПолей.Вставить("Страна",					"РОССИЯ");
ЗначенияПолей.Вставить("КодСтраны",					"643");
ЗначенияПолей.Вставить("Индекс",					СтрокаКонтактнойИнформации.Поле1);
ЗначенияПолей.Вставить("Регион",					СтрокаКонтактнойИнформации.Поле2);
ЗначенияПолей.Вставить("КодРегиона",				"");
ЗначенияПолей.Вставить("РегионСокращение",			"");
ЗначенияПолей.Вставить("Район",						СтрокаКонтактнойИнформации.Поле3);
ЗначенияПолей.Вставить("РайонСокращение",			"");
ЗначенияПолей.Вставить("Город",						СтрокаКонтактнойИнформации.Поле4);
ЗначенияПолей.Вставить("ГородСокращение",			"");
ЗначенияПолей.Вставить("НаселенныйПункт",			СтрокаКонтактнойИнформации.Поле5);
ЗначенияПолей.Вставить("НаселенныйПунктСокращение",	"");
ЗначенияПолей.Вставить("Улица",						СтрокаКонтактнойИнформации.Поле6);
ЗначенияПолей.Вставить("УлицаСокращение",			"");
ЗначенияПолей.Вставить("ТипДома",					?(ЗначениеЗаполнено(СтрокаКонтактнойИнформации.ТипДома),Метаданные.Перечисления.ТипыДомов.ЗначенияПеречисления.Получить(Перечисления.ТипыДомов.Индекс(СтрокаКонтактнойИнформации.ТипДома)).Имя,"")); 
ЗначенияПолей.Вставить("Дом",						СтрокаКонтактнойИнформации.Поле7);
ЗначенияПолей.Вставить("ТипКорпуса",				?(ЗначениеЗаполнено(СтрокаКонтактнойИнформации.ТипКорпуса),Метаданные.Перечисления.ТипыКорпусов.ЗначенияПеречисления.Получить(Перечисления.ТипыКорпусов.Индекс(СтрокаКонтактнойИнформации.ТипКорпуса)).Имя,""));
ЗначенияПолей.Вставить("Корпус",					СтрокаКонтактнойИнформации.Поле8);
ЗначенияПолей.Вставить("ТипКвартиры",				?(ЗначениеЗаполнено(СтрокаКонтактнойИнформации.ТипКвартиры),Метаданные.Перечисления.ТипыКвартир.ЗначенияПеречисления.Получить(Перечисления.ТипыКвартир.Индекс(СтрокаКонтактнойИнформации.ТипКвартиры)).Имя,""));
ЗначенияПолей.Вставить("Квартира",					СтрокаКонтактнойИнформации.Поле9);
ЗначенияПолей.Вставить("Комментарий",				СтрокаКонтактнойИнформации.Комментарий);

 

Теперь посмотрим, как это сделано в новых решениях, на примере конфигурации ЗУП 3.1 релиз 3.1.23.

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

 

 

Разберем назначение реквизитов новой табличной части:

-- "Тип" и "Вид" полностью соответствуют старому решению перечисления. Лишь добавлены несколько новый значений

-- "Представление" тоже не поменялось, обычный текст

-- Из привычных нам 10 полей отдельно вынесены только 3: "Страна", "Регион" и "Город". Это также простые текстовые поля.

Следующие 2 поля и являются причиной всех проблем при работе с адресами.

-- Значение. Это поле содержит строку в формате JSON. Т.е. весь адрес разбит на поля с учетом классификатора и записан особым образом. 

Почему-то номер квартиры записан в отдельный текстовый блок) Наверно, у кого-то в одном подъезде их несколько. Вот образец текста, корректно разбитого по полям:

{
"value": "445030, Самарская обл, г Тольятти, ул Тополиная, д. 100, кв. 200",
"type": "Адрес",
"country": "Россия",
"addressType": "Административно-территориальный",
"ZIPcode": "445030",
"area": "Самарская",
"areaType": "обл",
"city": "Тольятти",
"cityType": "г",
"street": "Тополиная",
"streetType": "ул",
"id": "05218b6f-7d92-4ec8-b64b-1c2e878417d3",
"areaId": "df3d7359-afa9-4aaa-8ff9-197e73906b1c",
"munDistrict": "Тольятти",
"munDistrictType": "г.о.",
"munDistrictId": "ccd78564-c43d-43b8-bf36-03152da5d6d8",
"cityId": "242e87c1-584d-4360-8c4c-aae2fe90048e",
"streetId": "05218b6f-7d92-4ec8-b64b-1c2e878417d3",
"houseType": "Дом",
"houseNumber": "100",
"houseId": "a3ef43fc-c91c-498a-9ab0-a4805e0bfc4c",
"apartments": [
{
"type": "Квартира",
"number": "200"
}
],
"oktmo": "36740000001",
"okato": "36440363000",
"ifnsFLCode": 6320,
"ifnsULCode": 6320
}

Этот адрес введен как "Административно-территориальный". Ещё есть "Муниципальный" и "ВСвободнойФорме".

На что ещё требуется обратить особое внимание

Недостаточно просто раскидать информацию по полям! Как видно из примера, каждый элемент адресной информации имеет свой ID.

Тип значения его "УникальныйИдентификатор". Именно благодаря ему мы можем быть уверены, что адрес правильный! 

Также этот ID является первым измерением регистра сведений "Адресные объекты". В этом регистре хранится загруженный классификатор. Как его загрузить описывать не буду, т.к. есть на ИТС.

 

-- Значение полей. Нам же мало иметь адрес записанный в одном формате! А давайте сохраним ещё в одном!? В XML. 

Почему бы и ДА!? Вот как это выглядит для того же адреса:

<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление="445030, Самарская обл, г Тольятти, ул Тополиная, д. 100, кв. 200">
<Состав xsi:type="Адрес" Страна="Россия">
<Состав xsi:type="АдресРФ">
<СубъектРФ>Самарская обл</СубъектРФ>
<Город>Тольятти г</Город>
<Улица>Тополиная ул</Улица>
<ОКТМО>36740000001</ОКТМО>
<ДопАдрЭл ТипАдрЭл="10100000" Значение="445030"/>
<ДопАдрЭл>
<Номер Тип="1010" Значение="100"/>
</ДопАдрЭл>
<ДопАдрЭл>
<Номер Тип="2010" Значение="200"/>
</ДопАдрЭл>
</Состав>
</Состав>
</КонтактнаяИнформация>

Для удобства просмотра сделал перенос строк. Хранится это одной строкой без пробелов и прочих разделителей.

Чтоб был понятен мой сарказм выше, стоит написать, что весь программный интерфейс работы с адресом заточен на формат JSON.

Формат XML формируется в самом конце в момент записи адреса в табличную часть.

 

Простые операции с адресом

Ввод адресов

Разберемся, как работать со строкой в формате JSON.

Сразу хочу отметить, что первая наша задача - получить правильное представление на основе разбитой по полям контактной информации.

 

1. Когда мы загружаем информацию откуда-нибудь, нам нужна понятная структура для записи данных. Пишем такой код:

СтруктураКонтактнойИнформации = РаботаСАдресамиКлиентСервер.СтруктураКонтактнойИнформацииПоТипу(Выборка.Тип);

Структура содержит в себе следующие поля:

 

 

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

Для этого воспользуемся программным интерфейсом:

Представление = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(СтруктураКонтактнойИнформации);

В результате Представление = "142700, Московская обл, р-н Ленинский, г Видное, б-р Зеленые аллеи, д. 10, кв. 200".

 

Далее наша вторая задача - преобразовать представление в нужный нам формат JSON.

Для этого воспользуемся ещё одним программным интерфейсом:

Значение = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Представление, Выборка.Тип);

Получается для приведённого примера такой результат:

{
"value": "142700, Московская обл, д. 10, р-н Ленинский, г Видное, б-р зеленые аллеи, кв. 200",
"type": "Адрес",
"country": "Россия",
"addressType": "Административно-территориальный",
"ZIPcode": "142700",
"area": "Московская",
"areaType": "обл",
"id": "29251dcf-00a1-4e34-98d4-5c47484a36d4",
"areaId": "29251dcf-00a1-4e34-98d4-5c47484a36d4",
"houseType": "Дом",
"houseNumber": "10",
"apartments": [
{
"type": "Р-Н",
"number": "Ленинский"
},
{
"type": "Г",
"number": "Видное"
},
{
"type": "Б-Р Зеленые",
"number": "аллеи"
},
{
"type": "Квартира",
"number": "200"
}
],
"oktmo": "46000000",
"okato": "46000000000",
"ifnsFLCode": 5000,
"ifnsULCode": 5000
}

 

Как видно, в результате получился адрес в старом административно-территориальном виде. Сейчас никаких районов не существует, есть городские округа. 

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

УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФизическоеЛицоОбъект,
    ЗначенияПолей, Выборка.Вид, Выборка.Тип);

Если смотреть отладчиком, получился вот такой результат:

 

 

Нужные поля заполнились самостоятельно.

 

Ввод телефонов

Теперь рассмотрим что происходит с телефонами. Там всё гораздо проще... Программный интерфейс от вида контактной информации практически не меняется! Разница вот в чём:

1. Получение структуры контактной информации нужно делать с помощью вот такого программного интерфейса:

СтруктураКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона();

Результат будет такой:

 

 

2. Теперь отличие только в результате заполнения. Представление = "+7 (495) 111-22-33"

 

3. Переменная "Значение" в формате JSON выглядит так:

{
"value": "+7 (495) 111-22-33",
"type": "Телефон",
"countryCode": "7",
"areaCode": "495",
"number": "111-22-33"
}

 

Ввод адресов электронной почты

Ещё одна особенность есть при вводе адреса электронной почты.

Переменная "Представление" равна адресу электронной почты. 

Переменная "Значение" в формате JSON выглядит так:

{
"value": "pochta@yandex.ru",
"type": "АдресЭлектроннойПочты"
}

 

Казалось бы... У нас всё получилось! УРА! Но не тут то было! Открываем пользовательский режим и видим такую картину:

 

 

Оказывается, чего-то в адресе не хватает, хотя всё везде разбилось по полям и пользовались мы только программным интерфейсом ЗУП КОРП! 

Телефон и адрес электронной почты записались правильно.

 

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

Во второй части будет описан процесс трансформации адреса из формата "Административно-территориальный" в формат "Муниципальный".

 

Другие технические публикации:

Отладка временных таблиц и типа ТаблицаЗначений

Особенности работы с COM-соединением

Пример работы с файлами odt в клиент-серверной модели работы

 

Статьи про ЗУП:

Ни в ЗУП ногой!? А мне нравится! Главные сложности решения, что отталкивает

Я - ЗУПер! Компетенции сотрудников.

Заполнение графиков при вахтовом методе работы

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user1686206 24.05.23 07:57 Сейчас в теме
Добрый день! Решал такую же задачу по переносу адресов из самописной ИС в ЗУП 3.1. Накидал много строк кода чтобы, хоть как-то перенести адреса в той форме, что понимает БСП. В итоге столкнулся с тем, что большинство адресов уже не актуальны (то индекс устарел, то улица переименована иначе) и взял на вооружение сторонний сервис для парсинга (думаю, кто работал, тот знает о чем я). Однако этот сервис платный.
2. biimmap 1088 24.05.23 08:32 Сейчас в теме
(1) мне удалось это сделать без платных сервисов) Как будет время во второй части это опишу
3. RustIG 1690 24.05.23 09:39 Сейчас в теме
(2) Павел, не знаешь , что с сайтом ИС происходит? есть новости об этом?
7. biimmap 1088 24.05.23 11:06 Сейчас в теме
(3) не понял вопроса... особенно не понял почему я должен знать. очень далёк от администрации.
13. RustIG 1690 24.05.23 12:29 Сейчас в теме
(7) ладно, тогда проехали.
5. user1686206 24.05.23 09:56 Сейчас в теме
(2) Было бы интересно ознакомиться с Вашим опытом. В моем случае адреса были настолько местами урезаны, что даже сложно было определить, какой это город, регион. Такие адреса записывал в регистр с пометкой на ручное исправление кадровиками в будущем
8. biimmap 1088 24.05.23 11:07 Сейчас в теме
(5) В любом случае, чтоб правильно сделать нужно чтоб по полям был разбит адрес! Иначе он будет записан как адрес в произвольной форме. На искусственный интеллект рассчитывать не стоит)
4. Painted 48 24.05.23 09:40 Сейчас в теме
Я так понял, что всех живущих в одном городе физлиц (или контрагентов) одним простым запросом не соберешь.
6. biimmap 1088 24.05.23 11:05 Сейчас в теме
(5) Правильно понимаете! Но если адрес разбит по новому классификатору, то в табличной части есть поле город.

Но опять же, т.к. мы живём в большой стране и название населенных пунктов повторяются много раз... в общем это не так просто стало)
30. biimmap 1088 25.05.23 22:29 Сейчас в теме
(4) Есть ещё примеры задач?
9. EvgeniuXP 24.05.23 11:22 Сейчас в теме
А в обратную сторону как? Из представления в структуру? Ну или структуру заполненную из физлица получить...
10. biimmap 1088 24.05.23 11:38 Сейчас в теме
(9) Всё будет во второй части. В этой описан простой пример, позволяющий кодом записать данные в ТЧ Контактная информация.
11. EvgeniuXP 24.05.23 12:14 Сейчас в теме
(10)опишите тогда какими значениями заполнили структуру - попробовал ваше представление раскидать по полям - на выходе JSON выдал без id), addressType - 'В свободной форме'
15. biimmap 1088 24.05.23 12:36 Сейчас в теме
(11) поля заполнить неправильно вряд ли возможно) Они имеют чёткое и понятное нам с Вами название.

Вопрос может быть в том, загружен у Вас классификатор или нет? Авторизованы в базе на портале ИТС?
Но справедливости ради отмечу, что первые разы у меня тоже был в свободной форме тот же самый адрес! А потом "бац" и почему-то стал хотя бы административным) Весь этот механизм очень чудесно работает!
16. EvgeniuXP 24.05.23 12:45 Сейчас в теме
(15)понял, московская область не загружена ) спасибо!
17. user1686206 24.05.23 13:50 Сейчас в теме
(10) Ждем вторую часть.
EvgeniuXP; +1 Ответить
12. BackinSoda 24.05.23 12:16 Сейчас в теме
Или перенести Тип-Вид-Объект и Представление, со словами "И тааак сойдёт"))
Andreyyy; biimmap; +2 Ответить
14. biimmap 1088 24.05.23 12:33 Сейчас в теме
(12) addressType - 'В свободной форме' этот тип чётко соответствует Вашему сценарию)))
18. Балабас 167 24.05.23 14:12 Сейчас в теме
как быстро получить значение поля "комментарий" из адреса физ. лица?
19. biimmap 1088 24.05.23 14:27 Сейчас в теме
(18) никак. коммент это одно из полей, которое преобразовано в JSON. Честно говоря комментарий это последнее поле о котором я думал при работе с контактной информацией.

Для меня всегда была загадка: а зачем он нужен? Что комментировать в контактной информации?
Но этот вопрос наверно от ЗУПера. При работе с контрагентами наверно это активней используется.

Ещё раз повторю, что чтение адреса и разбивка на части во второй статье
20. пользователь 24.05.23 19:16
Сообщение было скрыто модератором.
...
21. y22-k 246 25.05.23 10:24 Сейчас в теме
Воспользовался Сервисом ДаДата для разбора адреса убыстрило намного, была похожая задача, 10 коп за адрес вполне нормальный ценник
27. biimmap 1088 25.05.23 16:06 Сейчас в теме
(21) Ваше право... мне было интересно разобраться и главное сделать. Как спойлер ко второй статье напишу: у 1С есть бесплатный веб-сервис)))
33. user1686206 26.05.23 14:18 Сейчас в теме
(27) Если вы про этот сервис "https://api.orgaddress.1c.ru", то он меня не впечатлил или же я не умею его правильно готовить
22. awk 738 25.05.23 12:04 Сейчас в теме
(0) Про XML - JSON не было изначально.
23. biimmap 1088 25.05.23 16:00 Сейчас в теме
(22) не очень понял суть комментарий. Что-то добавить надо?
24. awk 738 25.05.23 16:01 Сейчас в теме
(23)
-- Значение полей. Нам же мало иметь адрес записанный в одном формате! А давайте сохраним ещё в одном!? В XML.
Это ответ на вопрос.
25. biimmap 1088 25.05.23 16:04 Сейчас в теме
(24) Он заполняется в момент вызова программного интерфейса для записи контактной информации. И на мой беглый взгляд нигде потом не используется) Может где-то в отчетности потом берут эту информацию уже упакованную в нужный формат.
26. awk 738 25.05.23 16:05 Сейчас в теме
(25) Да. Так и есть. Я застал переход с XML на JSON. Как я понимаю оставлен в целях совместимости с другими системами, разработка которых заморожена, но обмен с ними есть.
28. kser87 2358 25.05.23 17:32 Сейчас в теме
29. biimmap 1088 25.05.23 22:28 Сейчас в теме
(28) Есть какие-то примеры задач по контактной информации? Примеры что делалось на практике?
31. kser87 2358 25.05.23 23:17 Сейчас в теме
(29) ох, это надо целенаправленно вспоминать и долго писать
32. biimmap 1088 26.05.23 00:19 Сейчас в теме
(31) Целенаправленно вспоминать - ДА! А долго писать не надо) понимаю краткую постановку)))
34. NiGMa 26.05.23 14:36 Сейчас в теме
Есть ещё один интересный вопрос -- как получить компактное представление адреса?

Если просто брать "Представление" из контактной информации -- это, как правило, получается длинная строка, более 100 символов. А во многих "соседних" информационных системах длина адресной строки ограничена, и частенько как раз 100 символами.
При этом часть адресных сведений может быть избыточной: например, страна, почтовый индекс.
К тому же наименование города (населённого пункта) визуально дублируется (городской округ и город, наименование совпадает) -- впрочем, это больше относится к муниципальному делению, которое теперь стало основным вариантом в ГАР.

Так вот, вопрос -- нет ли готовой функции для генерации компактного представления адреса?
35. biimmap 1088 26.05.23 15:33 Сейчас в теме
(34) Скорей всего нет такого. Потому что с точки зрения отчетности, закона и прочих потребностей 1С это никому не нужно.

Но раскидав строку JSON по реквизитам можно самому из полученной структуры будет собрать строку нужной длины, убрав лишние сокращения, пробелы и ненужные поля.

Спасибо за пример!
36. NiGMa 27.05.23 14:54 Сейчас в теме
(35) Я и не предполагаю, что подобная функция есть/будет в БСП.
Но, думаю, я не первый, кто "наступил на эти грабли".

Ведь, когда был КЛАДР, "каноническим" считалось представление адреса в формате "7 запятых" -- и там не было ничего лишнего (впрочем, иногда там не было и необходимого).
А в формате ГАР, особенно в муниципальном делении, порой получаются вот такие перлы:
Россия, 660015, Красноярский край, м.р-н Емельяновский, с.п. Солонцовский сельсовет, п Солонцы, пр-кт Котельникова, соор. 17

-- 125 символов. И это ещё не самый длинный адрес.

Хотелось бы его привести к виду
Красноярский край, Емельяновский р-н, п Солонцы, пр-кт Котельникова, соор. 17

Страну и индекс включать опционально.



Но раскидав строку JSON по реквизитам можно самому из полученной структуры будет собрать строку нужной длины, убрав лишние сокращения, пробелы и ненужные поля.

Скорее всего, так и придётся делать.
Но тут сложность не столько в кодинге, сколько в погружении в проблему: какие поля можно считать ненужными (дублирующими).

Кстати, не знаете ли, где найти формальное описание JSON-формата ГАР?
37. biimmap 1088 27.05.23 15:22 Сейчас в теме
(36)
не знаете ли, где найти формальное описание JSON-формата ГАР


Знаю, но несмотря на нетерпячку у читателей этой статьи в комментах не буду писать))) Ждите вторую статью.
38. NiGMa 27.05.23 20:13 Сейчас в теме
Оставьте свое сообщение

См. также

Обычное приложение. Обращение к функциям и процедурам в модуле внешней обработки

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

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

05.04.2023    457    daa147    0    

4

Почему может разойтись стоимостной учет товара между УТ 11 и БП 3

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

Между Управлением торговлей 11.5 и Бухгалтерией предприятия 3.0 настроена синхронизация для обмена данными из Торговли в Бухгалтерию. Настройки обеих программ должны обеспечивать равенство стоимостной оценки товаров (счет 41) между двумя программами. Пришлось столкнуться с ситуацией, когда равенство было нарушено. О причинах возникшей разницы и способе ее решения речь в статье.

21.02.2023    585    gull22    1    

3

Баг или фича? Нюансы назначения шаблонов процессов для видов документов по организациям и без в 1С: Документообороте 2

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

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

17.02.2023    593    ArseniyFenix    0    

3

Как проводятся документы в типовых конфигурациях от 1С: дополнение

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

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

13.02.2023    4715    skv_79    7    

72

Отладка временных таблиц и типа ТаблицаЗначений

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

Установив 21-й релиз платформы, многие столкнулись с проблемами в отладке таблиц. При попытке просмотреть большую таблицу во всех колонках и строках написано "Расчет значения". Через время появляются нормальные значения. Но пока долистаешь до конца, в начале уже опять "Расчет значения". Вывод таблиц в макет стал невозможным.

01.02.2023    4138    109    biimmap    22    

46

Магия и логика настройки оплаты праздничных дней в ЗУП 3.1 для сдельщиков и не только

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

В статье изложен способ настройки оплаты праздничных и выходных дней при наличии сдельной оплаты труда и оплаты по окладу в 1C:ЗУП 3.1 без изменения конфигурации. Пишу в основном, чтобы не забыть, ну и, может, кому пригодится.

25.01.2023    1265    Jokstr    7    

0

Характеристики, Шаблоны и Списки характеристик номенклатуры в 1С

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

В данной статье рассмотрим практические нюансы создания характеристик в системе 1С:ERP, 1С:Комплексная автоматизация 2, 1C:Управление торговлей. Информация может быть полезна при подготовке к сдаче экзамена специалист-консультант по 1С:ERP 8, 1С 8 УТ.

10.11.2022    2608    Koder_Line    0    

7

Делаем свой интервальный регистр в ЗУП

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

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

09.09.2022    2463    vazelin    4    

30

Основные возможности работы с файлами в типовой конфигурации на БСП

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

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

07.09.2022    9097    quazare    9    

104

Добавление собственного виджета в 1С:Документооборот версии 3.0

Документооборот и делопроизводство (СЭД) Адаптация типовых решений Механизмы типовых конфигураций Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного виджета для отслеживания задач по видам документов в 1С документооборот версии 3.0.

18.07.2022    2969    ArseniyFenix    2    

45

Система контроля ведения учета [БСП]

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

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    5458    quazare    8    

101

Планы видов характеристик в системе 1С

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

Здравствуйте, коллеги! В данной статье речь пойдёт о значении планов видов характеристик в системе 1С, о том, какую они имеют структуру, а также - как создавать и работать с формами планов видов характеристик.

05.07.2022    1560    Koder_Line    2    

5

Еще раз о дополнительных реквизитах и дополнительных сведениях

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

Дополнительные реквизиты и сведения существуют давно. Задумка очень хорошая. Суть этих механизмов понятна всем. По этому поводу написано много. Что тут можно сказать нового? Однако бес, как всегда, в деталях. Как создавали реквизиты в объектах типовых конфигураций, так и продолжаем это делать. Почему это происходит? За всех сказать не могу. Могу рассуждать только на своем примере. Являясь убежденным практиком, одно могу сказать вполне определенно. Если что-то на практике недостаточно удобно, то останется оно главным образом в теории... Если не приложить немного усилий.

11.05.2022    9322    user1374747    19    

48

Экспертный кейс. Расследование фатального замедления времени расчета себестоимости в 1С:ERP 2

HighLoad оптимизация Механизмы типовых конфигураций Запросы Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

При выполнении нагрузочного тестирования информационной системы на базе 1С:ERP для одного из клиентов с целью оценки возможности миграции системы на PostgreSQL и Astra Linux мы столкнулись с неприемлемым увеличением времени выполнения расчета себестоимости. Строго говоря, сценарий тестирования закрытия месяца не был выполнен вообще – он не укладывался в таймаут выполнения теста, 24 часа. По прошествии 18 часов всё ещё шло выполнение операции «Распределение затрат и расчет себестоимости». Более 16 часов выполнялся подэтап “Расчет партий и себестоимости. Этап. Расчет себестоимости: РассчитатьСтоимость”. Всё это время выполнялся запрос, который в текущей инфраструктуре клиента (СУБД MS SQL Server) выполняется чуть более 3 минут на аналогичных данных.

25.03.2022    5878    it-expertise    92    

68

Авансы, кредиты и предоплаты ФФД 1.05. Изменение типовой УТ 10.3.72.3

Адаптация типовых решений Универсальные функции Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 10 Бесплатно (free)

Изменение типовой конфигурации Управление торговлей 10.3.72.3 и ниже для случаев, когда клиент оплачивает частично по накладной. В расчетной части чека должны быть типы оплат "Постоплата кредит" - сумма оставшегося долга, "Зачет аванса" - сумма предыдущих оплат. Также исправлена ошибка при оплате за накладную, в которой указаны товарные позиции с разными ставками НДС.

05.03.2022    793    andrew.ab    0    

1

Ни в ЗУП ногой!? А мне нравится! Часть 1. Главные сложности решения, что отталкивает

Зарплата Кадровый учет Механизмы типовых конфигураций Внедрение ИТ-системы Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры 7.7 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

Ни для кого не секрет, что ЗУП - одно из сложнейших решений в линейке 1С. Многие разработчики и аналитики не любят им заниматься. Тяжело представить, чтоб начинающий разработчик/аналитик стал по доброй воле работать в сфере управления персоналом и расчета заработной платы. В данной серии статей будет рассказано, какие видятся плюсы в этом решении и как справляться с его минусами. Кратко расскажу, как встать на этот путь, приведу примеры выполненных задач.

03.03.2022    9323    biimmap    57    

98

Действия при добавлении своего документа в конфигурацию ERP\КА

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

При добавлении новых документов в типовые конфигурации ERP\КА необходимо выполнить ряд действий, которые будут описаны в данной статье. Необходимо сразу подключить наиболее часто используемые подсистемы БСП, чтобы затем к этому не возвращаться.

02.02.2022    4413    Shining_ninja    15    

80

Перемещение товаров между филиалами в одной информационной базе 1С с применением RLS

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

В своей статье Ретунский Александр, аналитик-эксперт компании АО «Корпоративные ИТ-проекты» (официальный партнер ИнфоСофт), поделится опытом решения задачи по перемещению товаров между филиалами в одной информационной базе 1С с применением RLS.

30.12.2021    2104    Shining_ninja    12    

9

Готовые механизмы 1С: ЗУП, представления

Механизмы типовых конфигураций Запросы Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Бесплатно (free)

Здесь будет храниться архив запросов, которые могут помочь разработчику правильно строить отчеты и получать данные в 1С: ЗУП. Статью буду периодически дополнять.

03.11.2021    7706    Margo462    19    

91

Типовые операции в 1С: БГУ 2. Часть 4. Заключение

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

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 4 "Заключение". Завершаем типовую операцию из ТЗ, изучаем простые условия, немного касаемся сложных условий, прикасаемся к булевой алгебре, изучаем функцию ЗНАЧЕНИЕ() и прочие прикладные функции как примеры, задаем стандарты типовой операции.

14.09.2021    7638    ldmonster    33    

14

Типовые операции в 1С: БГУ 2. Часть 3

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

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

10.09.2021    5274    ldmonster    1    

12

Типовые операции в 1С: БГУ 2. Часть 2

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

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

09.09.2021    6782    ldmonster    2    

11

Типовые операции в 1С: БГУ 2. Часть 1

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

В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций Часть 1. Знакомство с типовыми операциями. Разбор первой страницы формы типовой операции, корректное создание (копирование), создание правильного и удобного наименования, написание комментария.

07.09.2021    7514    ldmonster    3    

16

Доработка проведения в ERP 2.5 (регистр бухгалтерии Хозрасчетный)

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

Покажу точки входа для доработки "типового" проведения документов в ERP для регистра бухгалтерии Хозрасчетный. Расскажу про "неочевидное" поведение системы. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.5.117).

20.05.2021    7695    BuriyLesha    48    

72

Создание документа Установка цен номенклатуры без записи документа

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

Рабочий механизм создания документа Установка цен номенклатуры в КА 2 и УТ 11, без сохранения документа и с рабочим отображением заполненных данных.

11.03.2021    3624    Vladimir_D    10    

16

Доработка политики учета серий "Учет себестоимости по сериям" в 1C:ERP

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

Политика учета серий "Учет себестоимости по сериям" предполагает обязательное указание серий в заказах, если вид обеспечения установлен "Отгрузить" или "Отгрузить обособленно". Доработка политики учета серий состоит в том, чтобы отключить обязательное заполнение серий в заказах.

01.03.2021    2117    Drivingblind    4    

18

Пример работы с файлами odt в клиент-серверной модели работы

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Возникла задача, реализовать печатные формы из шаблонов в формате ODT (Open Office). Особенность задачи заключалась в том, что шаблоны хранятся в виде файлов на сервере. Печать должна выполняться через веб-клиент. По выбору пользователя заполненный шаблон выводится либо в ODT либо PDF. Столкнулся с дефицитом информации по этой теме. По этой причине в самой статье опишу подход к решению задачи и особенности, связанные с работой на сервере и веб-клиенте. Прикладываю обработку, в которой все реализовано. Вам останется только отредактировать 2 функции, в которых указан список параметров шаблона. Остальной код универсальный и не зависит от конфигурации. Данная доработка выполнялась в самописной конфигурации и не требует наличия БСП. Сразу напишу, что размышления о том, что можно поместить шаблон в конфигурацию и выполнить всё на клиенте совсем не уместны. Разработка велась на платформе 8.3.16, на более ранних версиях также должна работать.

1 стартмани

01.02.2021    6702    11    biimmap    1    

21

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

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

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    20088    BuriyLesha    20    

209

Программное создание корректировочного счета-фактуры выданного в УПП 1.3

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

Данный функционал можно использовать, например, в процессе оформления возвратов от поставщика (корректировка реализации по согласованию сторон) при автоматическом создании корректировок реализации по документам поставщика, он позволяет массово создать корректировочные счета-фактуры в УПП 1.3. При создании документа из первичного счета-фактуры выданного в новый корректировочный счет-фактуру выданный копируются значения свойств.

17.12.2020    1249    ksnik    0    

2