Ошибка при обновлении 1с двоичные данные

   nobody roman

19.10.18 — 08:19

Доброго дня, пятницы так сказать)

Столкнулся с проблемой при обновлении 1С БП 3.0.54.20 до последнего релиза.

Делаю как: если накатывать релизы пошагово — на третьем выдает ошибку и не дает идти дальше.(что за ошибка уже не припомню). Потому выгрузил конфу из основной базы в тест, вернул на поддержку без редактирования(в рабочей базе немного добавлено в модуле УчетНДС — буквально пара строчек), а так конфа типовая), обновил до релиза 3.0.65.54, но при загрузке обратно выдает ДвоичныеДанные Фалов.Имеются записи с одинаковыми измерениями. При попытке вернуть рабочую базу так же на поддержку(на конфу поставщика) история повторяется. Никаких вмешательств в регистры не было: ни прямых, ни программных.

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

http://prntscr.com/l7stxk

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

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

Куда еще покопать? Заранее спасибо, господа и дамы!

   Случайный прохожий

1 — 19.10.18 — 09:20

Консолькой найти эти записи в режиме предприятия и удалить лишнее

   nobody roman

2 — 19.10.18 — 09:30

(1) А подробнее для не знающих?

Единственное что подумал — может я что-то пропустил и обработкой поиск и удаление дублей прошелся, заново все переименовал. Пока не пробовал

   nobody roman

3 — 19.10.18 — 09:31

Так там нет лишних — там все документы об отгрузках. Я думаю проблема в том, что офис-менеджер не сильно запаривалась и все присоединенные сканы к Название Предприятия названы Название Предприятия.pdf

   Случайный прохожий

4 — 19.10.18 — 09:52

(2) Это не поможет

(3) Не в этом дело

Под рукой просто БП 3.0 нет. Залезь в конфигуратор, посмотри какие измерения имеются у РС «ДвоичныеДанныеФайлов» и сюда выложи

   nobody roman

5 — 19.10.18 — 09:54

   nobody roman

6 — 19.10.18 — 09:54

Только файл

   Случайный прохожий

7 — 19.10.18 — 09:55

(6) А, вот оно что. А если открыть этот РС в режиме предприятия?

   Случайный прохожий

8 — 19.10.18 — 10:00

Консолью запросов умеешь пользоваться? Я тебе запрос скину и ты сразу найдешь ошибку

   nobody roman

9 — 19.10.18 — 10:00

   nobody roman

10 — 19.10.18 — 10:02

(8) Даже не в курсе где она, честно говоря)))

   nobody roman

11 — 19.10.18 — 10:03

(8) Я так понял ее надо скачать в виде вн.обработки?

   Случайный прохожий

12 — 19.10.18 — 10:05

(11) Да. Консоль запросов для управляемого приложения

   nobody roman

13 — 19.10.18 — 10:08

Скачал,открыл

   Случайный прохожий

14 — 19.10.18 — 10:15

ВЫБРАТЬ

ТАБ.Файл,

Сумма(Количество) КАК Количество

ИЗ

(ВЫБРАТЬ

РС.Файл,

1 КАК Количество

ИЗ

РегистрСведений.ДвоичныеДанныеФайлов КАК РС) КАК Таб

ГДЕ ТАБ.Количество >1

СГРУППИРОВАТЬ ПО ТАБ.Файл

   Случайный прохожий

15 — 19.10.18 — 10:15

Этот запрос выполни. Вернет что-нибудь?

   nobody roman

16 — 19.10.18 — 10:16

   Случайный прохожий

17 — 19.10.18 — 10:18

Странно… Я до конца был уверен, что ошибка из-за задвоения записи в одном измерении))

   Случайный прохожий

18 — 19.10.18 — 10:18

Сотри строку «ГДЕ ТАБ.Количество >1»

   Случайный прохожий

19 — 19.10.18 — 10:19

Можно вообще попробовать на копии все записи из регистра грохнуть и посмотреть, будет ошибка или нет

   nobody roman

20 — 19.10.18 — 10:20

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

   nobody roman

21 — 19.10.18 — 10:21

(19) Так я ж писал, что удалял, правда методом удаления регистра из под конфигуратора

   Случайный прохожий

22 — 19.10.18 — 10:23

(21) Нажимал на кнопочку «Обновить» после удаления регистра или сразу начинал ставить на поддержку?

   Случайный прохожий

23 — 19.10.18 — 10:24

Нужно на копии попробовать очистить весь регистр. Обработки умеешь писать? :)

   nobody roman

24 — 19.10.18 — 10:26

(23) Не, я больше системник. Мне конечно уже предложили, что оплатят учебу на 1С, но пока времени совсем на это нет)

Могу ручками) Разрешить редактирование и пометить на удаление, через админку стереть

   nobody roman

25 — 19.10.18 — 10:28

   nobody roman

26 — 19.10.18 — 10:32

Даже на базе, только что взятой с основы, запрос возвращает 0

   Случайный прохожий

27 — 19.10.18 — 10:33

(24) не совсем понял что ты собираешься помечать на удаление и как :)

Кароче давай создавать обработку))

   Случайный прохожий

28 — 19.10.18 — 10:36

открой email в профиле, я обработку скину

   nobody roman

29 — 19.10.18 — 10:36

(27) Давай)) А я тут заметил, что в скрине, который первым прислал Измерения-Файл не стоит на поддержке. Может его попробовать удалить, без заполнения индекса поиска, и накатить конфу с поддержкой поставщика.

   Случайный прохожий

30 — 19.10.18 — 10:39

(29) Погоди пока с этим. Во втором письме запусти обработку. В первом забыл кнопочку на форму вынести :) Профиль можешь закрывать

   nobody roman

31 — 19.10.18 — 10:44

(30) Я сразу вторую и открыл))) Все регистры стерты. Пробую загрузить конфигурацию поставщика

   nobody roman

32 — 19.10.18 — 10:47

(30) Дал — обновился. Но вопрос, что такого же эффекта я уже добился, методами как писал выше))) Как сохранить то данные))))

   Случайный прохожий

33 — 19.10.18 — 10:50

Ну теперь однозначно ясно в чем проблема. Нужно удалить лишнее :) Ща обработку накатаю

   Случайный прохожий

34 — 19.10.18 — 10:51

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

   Случайный прохожий

35 — 19.10.18 — 10:58

Еще одну обработку выслал. Писал вслепую, не уверен в правильности. Запусти и доложи о результатах.

   nobody roman

36 — 19.10.18 — 10:58

(35) Окей))))

   nobody roman

37 — 19.10.18 — 11:04

При нажатии кнопки «исправить» задумался, но ничего после не выдал. Регистры на месте. При попытке обновления — без изменений

   Случайный прохожий

38 — 19.10.18 — 11:06

Понятно. Он прошелся по регистру, перезаписал каждую запись. Если бы были повторные — он бы руганулся. Так же как и консолька этих записей не увидела. Тут кароче похоже глюк конкретный. Базу на тестирование и исправление ставил?

   nobody roman

39 — 19.10.18 — 11:08

(38) Ставил, но уже столько копий перебрал, что не помню какую из них))) Основу ставил вроде, когда не давал в первые реализации зайти. Сейчас эту поставлю.

   Случайный прохожий

40 — 19.10.18 — 11:10

Галочки все поставь на всякий случай :)

   nobody roman

41 — 19.10.18 — 11:11

(40) Ну я с сжатия убрал(думаю к нему не относится проблема)))))

   nobody roman

42 — 19.10.18 — 11:12

(40) В любом случае спасибо за помощь. По окончании тестирования попробую еще и отпишусь) Могу на почту.

   Случайный прохожий

43 — 19.10.18 — 11:19

(42) Да незачто. Можно еще потом через chdbfl попробовать :)

   nobody roman

44 — 19.10.18 — 12:17

Объект изменен: РегистрСведений.ДвоичныеДанныеФайлов

Регистрация изменена: РегистрСведений.ДвоичныеДанныеФайлов

Не помогло. Пробую через chdbfl

   nobody roman

45 — 19.10.18 — 13:02

Через chdbfl че то нашло — исправило, перепроверил ошибок не обнаружено. А все осталось по прежнему. Видимо не судьба сохранить данные))))

   Случайный прохожий

46 — 19.10.18 — 13:17

Ну можно попробовать еще выгрузить куда-нибудь регистр, очистить, обновить базу, подгрузить регистр

   nobody roman

47 — 19.10.18 — 16:07

(46) Спасибо за советы и помощь. Что-то не так с данными внутри. Если из клиента очистить все методом разрешить редактирование, выделить все — del, то он нормально дает обновиться. Но перебирать мильен возможностей кто из файлов или несколько файлов не дают удалить…такое себе)) Попробую еще раз обновиться пошагово. Единственное растущий вес базы после каждого обновления пугает.

   Случайный прохожий

48 — 20.10.18 — 09:57

Сорян, я похоже с запросом тупанул :)

Держи, попробуй:

ВЫБРАТЬ *

ИЗ

)ВЫБРАТЬ

ТАБ.Файл,

Сумма(Количество) КАК Количество

ИЗ

(ВЫБРАТЬ

РС.Файл,

1 КАК Количество

ИЗ

РегистрСведений.ДвоичныеДанныеФайлов КАК РС) КАК Таб

СГРУППИРОВАТЬ ПО ТАБ.Файл) КАК Таб2

ГДЕ Таб2.Количество >1

   Случайный прохожий

49 — 20.10.18 — 11:08

В третьей строчке только скобочку из «)» переставь в «(«

   nobody roman

50 — 20.10.18 — 13:07

(49) спасибо) в понедельник опробую)

   nobody roman

51 — 22.10.18 — 07:24

(49) К сожалению результат тот же — записей 0. Можно, говоришь, выгрузить в xml регистр?

   nobody roman

52 — 22.10.18 — 07:30

А стоит при ТиИ ставить галочки на создание объектов? Или Это будет плохо?

   Случайный прохожий

53 — 22.10.18 — 07:32

(52) Ну ТИИ не дураки же писали :) Плохо не будет, будет — «иначе»

   Случайный прохожий

54 — 22.10.18 — 07:34

Сам недавно переводил ЗУП 2.5 и столкнулся с тремя задвоениями значений в регистрах, но все устранил путем запросов. У тебя вообще какая-то нестандартная ситуация. Можно в XML выгрузить, но за бесплатно это врятли кто-то согласится делать

   nobody roman

55 — 22.10.18 — 07:44

(54) Да, я думаю сейчас бухгалтер потестит базу тестово переведенную в 3.0.64.54 и если все устроит, то в ручную перепишу данные прикрепленных к реализациям сканов, а после ручками их добавлю в новую. Там надо то за последние полтора месяца оставить)))) Фигня))) 150 реализаций и дело сделано)))

   nobody roman

56 — 22.10.18 — 07:45

А потом опять буду добавлять мелкие переделки в модуль УчетНДС, чтобы потом помучаться снова при обновлении после нового года, когда НСД 20% будет)))

   Случайный прохожий

57 — 22.10.18 — 07:53

(56) Не думаю, что ситуация снова повторится. Скорей всего это был единичный случай

   nobody roman

58 — 22.10.18 — 07:57

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

  

nobody roman

59 — 22.10.18 — 07:58

Правда обновленная в конце 2017 года так же костылями

Изменение данных представлено в виде таблицы до изменений и после ниже картинки с историей изменения данных с моим расширением.

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

Внешние компоненты для подключения торгового оборудования, или для решения задач, которые средствами платформы сложно или вовсе невозможно решить;. 1С перенос документов между одинаковыми конфигурациями Обращайтесь в форму связи

Ошибки при обновлении 1С

Рассмотрим основные ошибки, которые могут возникнуть при обновлении конфигурации 1С, а также методы их решения.

    .

  1. Сделать сравнение/объединение конфигурации 1С с типовым cf-файлом того же релиза. При этом выключить все чекбоксы в дереве метаданных, нажать кнопку «Выполнить».
  2. Затем в диалоге «Настройка правил поддержки» для всех объектов дерева метаданных выставить «Редактируется с сохранением поддержки», нажать «Ок». В результате восстановится конфигурация поставщика и конфигурация встанет на поддержку. При этом останутся все изменения и возможность редактирования.
  3. Обновить конфигурацию базы данных.

Как получить двоичные данные файла 1с

  1. Поставьте чистую конфигурацию, аналогичную вашей, а затем через конфигуратор, сохраните её в файл.
  2. Аналогично сохраните файл конфигурации проблемной базы и следующие шаги выполняйте в нём же.
  3. Откройте пункт меню «Конфигурация» > «Загрузить конфигурацию из файла». При запросе системы «Обновить конфигурацию БД» обязательно выбираем «Нет»
  4. Создайте новую конфигурацию поставщика через меню «Конфигурация» > «Настройка поддержки» > «Включить возможность изменения».
  5. Следующим шагом выбираем «Конфигурация» > «Сравнить Объединить с конфигурацией из файла» и указываете файл конфигурации, созданный на втором шаге.
  6. Соглашаемся с изменениями и применяем их к конфигурации информационной базы по кнопке F7 — «Обновить конфигурацию базы данных».
  7. Обновляете.

Предопределенный элемент отсутствует в данных

Ситуация, характерна, когда предопределенный элемент отсутствует в базе данных ИБ, но в конфигурации он описан. Существует два основных варианта событий, когда такое происходит.

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

Если это все же ошибка в информационной базе, то выполните привязку элемента базы к предопределенному элементу. Технически это просто указание имени в свойстве «ИмяПредопределенныхДанных».

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

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

Создаем новый объект ХранилищеЗначения ХранилищеДанных — реквизит объекта с типом ХранилищеЗначения ХранилищеДанных Новый ХранилищеЗначения Файл , Новый СжатиеДанных 9 ;. Ошибки при обновлении 1С — 1С-ИжТиСи Обращайтесь в форму связи

Средства работы с двоичными данными

Необходимо просканировать каталог с файлами, выбрать файлы с расширением «.jpg» или «.jpeg» и для каждого такого файла собрать информацию об изображении. Если при анализе выяснится, что файл не соответствует формату JPEG, то такой файл следует пропустить.

Краткое описание формата JPEG

Кратко опишем некоторые детали формата, существенные для решения нашей задачи. За более подробным описанием формата JPEG можно обратиться к соответствующим источникам:

Решение

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

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

Теперь, когда мы написали основную функцию для анализа JPEG-файла, напишем вспомогательную функцию — ПрочитатьМаркер , которая читает очередной маркер и возвращает информацию о нем:

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

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

Пример: Работа с составными (multipart) HTTP-сообщениями

Вы можете скачать приложенную конфигурацию прямо сейчас

Постановка задачи

В данном примере мы создадим HTTP-сервис, который будет в ответ на запрос от клиента выдавать текстовое сообщение с вложенными картинками. Затем на клиенте мы отобразим полученный ответ.

В этом сообщении надо обратить внимание на тип содержимого (заголовок Content-Type) — «multipart/form-data». Первое слово «multipart» указывает на то, что HTTP-сообщение является составным, т.е. содержит внутри себя несколько вложенных сообщений. Второе слово — «form-data» — указывает на конкретный стандарт составных сообщений, который часто используется для кодирования почтовых сообщений.

В любых составных сообщениях в заголовке Content-Type обязательно должен присутствовать атрибут boundary, определяющий строку, которая отделяет друг от друга вложенные сообщения внутри составного сообщения.

В случае стандарта «multipart/form-data», каждое вложенное сообщение в свою очередь должно содержать заголовок Content-Disposition со значением «form-data» и атрибутом «name», который позволяет идентифицировать сообщения.

Создание cервиса для формирования составного сообщения

Добавим новый HTTP-сервис и назовем его «TestMultipart». Для простоты будем считать, что наш сервис будет возвращать заданное составное сообщение в ответ на любой GET-запрос. Поэтому добавляем Шаблон URL с именем «ДляВсех» и значением «/*». Т.е. данный шаблон соответствует любому запросу. Далее добавляем в шаблон HTTP-метод GET с именем «Get».

В качестве обработчика для метода создаем в модуле сервиса функцию ДляВсех_Get :

Горящие товары с бесплатной доставкой

«AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

Вся работа по созданию сообщения выполняется в функции СоздатьСообщение . Данная функция определяется следующим образом:

Как исправить ошибки при обмене данными в 1С

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

Ошибки при обновлении 1С

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

Мнение эксперта

1С:Эксперт по технологическим вопросам

Задавайте мне вопросы, и я помогу разобраться!

Зайдите в справочник пользовательских профилей Все функции Справочники Профили групп доступа не путайте со справочником Пользователи. Пример: Работа с составными (multipart) HTTP-сообщениями Обращайтесь в форму связи

Услуги программирования и консультирования в 1С

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

Я опишу оба варианта, а решение остается за вами, что удобней именно вам.

Сначала разберемся со встроенными методами решения данного вопроса.

Часть информации (в зависимости от настроек) – сохраняется в журнале регистрации, но эта информация неполная. Из журнала вы не получите подробную информацию об исправлениях документа или элемента справочника.

Начиная с релиза 8.3.11.2867 — появилась возможность отслеживать изменение данных в конфигурации. Называется «История изменения данных». Только если вы ее просто попытаетесь сформировать, то ничего не получится. Предварительно нужно сделать настройки.

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

После изменения режима вы можете у нужных объектов в свойствах изменить настройки для каждого объекта, который собрались отслеживать. Затем в пользовательском режиме нужно настроить регламентное задание и указать частоту версионирования данных. Второй вариант – это прописать код для нужных объектов, рекомендован разработчиками, так как меньше загружает базу.

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

Теперь перейдем к моему варианту решения данного вопроса.

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

рис. 2 (История изменений для справочника «Номенклатура» — другой элемент справочника)

рис. 3 (История изменения данных в справочнике «Контрагенты»)

рис. 4 (История изменения данных в документе «Реализация»)

Все подробно рассказано и продемонстрировано в видео, которое представлено на этой странице. В этом видео дана подробная инструкция по работе с данным расширением.

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

Пока представлено расширение для БП 3.0 , так как была необходимость отслеживания изменений. Можно сделать такое же расширение для любой конфигурации. Цена будет такой же, как для представленного решения. Также возможны расширения для самописных баз – в этом случае цена оговаривается отдельно.

Ошибка формата потока

Создадим обработчик команды, выделив команду в списке команд формы и нажав на кнопку с увеличительным стеклом в поле «Действие» панели свойств:

1С 8.x : Работа с бинарными файлами, Двоичные данные и кодировка Base64

💥Принимайте участие в опросе и получайте бесплатную консультацию

Часто ошибки возникают при обновлении конфигурации, — особенно если обновление «перескакивает» через несколько релизов. Рассмотрим причину появления и как исправить ошибку 1С «Записи регистра сведений стали неуникальными».

Отображение ошибки

Подобная ошибка может иметь два идентичных отображения от системы 1С:

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

Программные требования к регистрам

Мы знаем, что регистр (register, англ.) сведений формируется для хранения в виде записей (строк). Каждая из них характеризуется видами измерений (профилями) и ресурсов.

Измерения характеризуют разрезы (типы), в которых хранятся данные. А ресурсы— непосредственно содержат их значения.

Например, register сведений «Цены товаров» имеет структуру, состоящую из двух видов профилей («Товар», «ВидЦен») и одного ресурса («Цена»):

Структура товаров в 1С

Таким образом, строки регистра в базе данных будут выглядеть так:

Строки регистра в реестре

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

Одинаковыми считаются такие записи, ключи которых идентичны.

Изменение структуры

Рассмотрим другой пример.

В одно время разработчиком был создан регистр «ОтветственныеЛицаПоСкладам» структурно состоящий из двух измерений («Склад» и «Помещение») и одного ресурса («Ответственный»).

В последующем кем-то было принято решение о том, что такая детализация является излишней. Это решение отразилось в очередном релизе.

И теперь обновлённый register имеет только единственный профиль и ресурс:

Структура его изменилась. Но строки остались!

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

Поэтому появляется ошибка 1С:«записи регистра сведений стали неуникальными». Может быть такая — имеются записи с одинаковыми измерениями.

Ручное исправление

Смысл этих сообщений сводится к тому, что новая структура содержит несколько строк с лишними измерениями и их нужно свернуть в одну:

Несколько записей с одним значением

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

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

Пропущенный релиз

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

Метод сравнения

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

Для решения такой задачи нужно войти в режим «Конфигурация» и выполнить команду «Сравнить конфигурации»:

После этого удалить найденные с помощью консоли запросов неуникальные строчки.

При небольшом их количестве это несложно сделать вручную.

Автоудаление 1

Для программного удаления очень большого количества неуникальных строчек можно воспользоваться обработкой, предложенной Евгенией Карук:

Программное удаление дублей

  • Сначала скачать и открыть обработку;
  • Открыть register сведений с неуникальными строчками;
  • Отметить те из измерений, которые нужно удалить в результате обновления;
  • Дать команду нажатием «Свернуть дубли».

Дубли строк будут найдены обработкой и свёрнуты в одну.

После проведения обработки обновление конфигурации будет проведено корректно.

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

Проверка на наличие дублей

Автоудаление 2

Другая обработка для той же цели предложена другим специалистом в этой области — Павлом Чистовым (для мобильного варианта не поддерживается).

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

Комментируйте наши публикации. Описывайте свой опыт в решении проблемных вопросов.

Собственно БезопасноеХранилищеДанных — это регистр сведений, входящий в БСП и предназначенный для «записи конфиденциальных данных в безопасное хранилище, например, паролей для доступа к сторонним системам и т.п.». Что было не совсем очевидно из сообщения при реструктуризации данных, хотя, может, я и невнимательно прочитал 🙂 Его «безопасность» — это отдельный вопрос. 🙂 А природа ошибки в том, что у единственного измерения Владелец исключен тип строка и записи с владельцем — строкой становятся неуникальными.

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

Всё актуально и для Бухгалтерии 3.0, и УТ 11, и для других конфигураций на БСП.

Михаил Сайко

Двоичные данные платформы 1С:Предприятие – это универсальный объект встроенного языка программирования для работы с файлами. Благодаря объекту ДвоичныеДанные можно любой файл представить в виде последовательности байт. Объект доступен в тонком клиенте, веб-клиенте, мобильном клиенте, на сервере, толстом клиенте, внешнем соединении, мобильном приложении (клиент/сервер).

Объект сериализуется

Данный объект может быть сериализован в/из XML, может использоваться в реквизитах управляемой формы, а также он может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен . Имя типа XDTO может быть любым из перечисленных: base64Binary, hexBinary.

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

Задачи, для решения которых можно использовать двоичные данные:

  • Хранение файлов в базе данных (с использованием ХранилищеЗначения);
  • Передача файла с клиента на сервер;
  • Передача файлов при работе с протоколом HTTP;
  • Передача вложений при работе с электронными письмами;
  • Криптография;
  • Представления файла в виде текста (с использованием Base64).

Работа с двоичными данными:

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

Примеры по работе с двоичными данными

Самый очевидный пример, где применяются двоичные данные, – сохранение файла в базе данных. Для хранения файла в виде двоичных данных необходимо в объекте добавить реквизит с типом «ХранилищеЗначений». Далее представлен пример кода по работе с реквизитом (заполнение значения и получение значения).

Заполнение:

Получение (фрагмент кода, выполняемый на сервере):

Рассмотрим еще один пример: скачивание картинки из интернета и отображение ее на управляемой форме. Для этого также добавляем реквизит с типом ХранилищеЗначения, в котором будет помещаться картинка в двоичном формате.

Функция, скачивающая картинку из интернета:

Использование функции:

Теперь у нас в реквизите «Аватар» лежат двоичные данные картинки. Чтобы картинку вывести на управляемую форму, необходимо добавить реквизит формы «Тип строка», перекинуть его на форму (drag-and-drop), либо создать самостоятельно элемент формы, указав в поле «Путь к данным» наш реквизит «Картинка», после чего изменить вид на «Поле картинки».


По событию ПриСозданииНаСервере

Готово, на форме у нас картинка.

Двоичные данные и потоки

Говоря о двоичных данных, стоит упомянуть о возможности работы с потоками. Она появилась относительно недавно, а именно в версии 8.3.9. Чтобы потоком можно было читать из двоичных данных, применяется метод ОткрытьПотокДляЧтения. Допустим, у нас в базе данных лежит заархивированный xml-файл (как хранить файлы в базе данных рассматривалось ранее). Нам нужно вывести пользователю содержимое этого файла, или у вас настроен какой-то обмен, и вы передаете файлы в заархивированном виде (для экономии трафика).

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

  • Получить двоичные данные из базы;
  • Записать их во временный файл;
  • Разархивировать;
  • Удалить временный файл;
  • Прочитать разархивированный файл.

Последовательность действий при работе с потоками:

  • Получить двоичные данные из базы;
  • Открыть поток для чтения;
  • Разархивировать;
  • Прочитать разархивированный файл.

Пример кода без использования потоков:

Пример кода по работе с потоком:

Если диск у вас на SSD, рекомендую использовать потоки не только в примере с архивацией, а везде, где это возможно. Да, в данном примере все же происходит запись на диск (разархивация), но будем надеяться, когда-нибудь 1С реализует метод двоичных данных ОткрытьПотокДляЗаписи.

Работа с Base64

Base64 – это стандарт, позволяющий кодировать двоичные данные в виде строки (для кодирования используется 64 символа таблицы ASCII, отсюда и название). Тип ДвоичныеДанные сериализуем, то есть его можно представить в виде XML, для этого применяется объект встроенного языка СериализаторXDTO. После сериализации данные представлены одним узлом base64Binary, содержимое которого есть последовательность байт, закодированная в формате Base64.

строка в Base64

Платформа 1С также позволяет кодировать двоичные данные, не прибегая к сериализации. Для этого есть две функции:

Они преобразуются в Base64 и обратно в двоичные данные.

Если у вас остались вопросы по работе с двоичными данными в среде 1С:Предприятие, обратитесь к нашим специалистам и получите консультацию по 1С 8.3 или воспользуйтесь услугами по сопровождению 1С.

Понравилась статья? Поделить с друзьями:
  • Ошибка при обновлении 1с бгу
  • Ошибка при обновлении 1с базовая
  • Ошибка при обновлении 1 с код возврата 1
  • Ошибка при обновление приложений на смартфон
  • Ошибка при обновление карт bmw