Ошибка при вызове метода контекста записать запись не верна

запись битой ссылки в регистр

Я
   Franchiser

01.11.22 — 15:07

Можно ли записать набор записей БУ, чтобы в субконто были битые ссылки?

   kittystark

1 — 01.11.22 — 15:08

только в путь

   Kassern

2 — 01.11.22 — 15:09

(0) КД2 при загрузке же делает и вы сможете)

   KJlag

3 — 01.11.22 — 15:11

(0) хотите сами сделать или выясняете откуда появилось сие чудо в базе?

   Волшебник

Модератор

4 — 01.11.22 — 15:14

Согласовано.

   lodger

5 — 01.11.22 — 15:16

(0) можно, но зачем?

   Franchiser

6 — 01.11.22 — 15:17

(2) да тоже помню что КД 2 делает.

Сейчас пытаются загрузить обработкой «Универсальный обмен между идентичными конфигурациями» выдает при записи набора БУ ошибку «Запись не верна»

   Сергиус

7 — 01.11.22 — 15:18

(0)Сначала записываешь, потом удаляешь объекты, на которые ссылки)

   Franchiser

8 — 01.11.22 — 15:18

(5) нужно перенести из одной базы в другую регистры, но объекты по ссылкам не выгружать

   Franchiser

9 — 01.11.22 — 15:19

(7) я объекты не переношу

   Franchiser

10 — 01.11.22 — 15:20

Ошибка: «Ошибка при вызове метода контекста (Записать): Запись не верна!»

   Сергиус

11 — 01.11.22 — 15:22

(6)Стоит галка загружать в режиме Загрузка = Истина?

   Franchiser

12 — 01.11.22 — 15:23

(11) Даш, запись в режиме ОбменДанными.Загрузка = Истина

   crasler

13 — 01.11.22 — 15:23

(10)

Битую ссылку как получаешь?

И также можно доставить ОбменДанными.Загрузка = Истина

   PR

14 — 01.11.22 — 15:23

(10) Так ты создавай объект, записывай, потом указывай в регистре, потом записывай регистр, потом удаляй объект

   Kassern

15 — 01.11.22 — 15:23

(6)  

Ссылка = Справочники.НужныйСправочник.ПолучитьСсылку(Идентификатор);

Объект.УстановитьСсылкуНового(Ссылка);

Объект.Записать()

И будет вам «битая ссылка» если с таким гуидом элемента не нашлось.

   Kassern

16 — 01.11.22 — 15:25

(10) Так вы может, что-то не перенесли? Например период не заполнен, или пустая ссылка в регистраторе

   Franchiser

17 — 01.11.22 — 15:25

Как избавиться от ошибки при записи в регистр БУ «запись не верна»?

   mikecool

18 — 01.11.22 — 15:26

феерически…сказочно…

   Franchiser

19 — 01.11.22 — 15:26

(16) Проверил — период заполнен, остальные поля тоже

   PR

20 — 01.11.22 — 15:26

(17) См. (14)

   polosov

21 — 01.11.22 — 15:27

(17) Сделать халяльной

   Kassern

22 — 01.11.22 — 15:27

В КД2 есть такая галочка в ПКО, при переносе объекта по ссылке НЕ создавать новый объект (Переносить ссылку). Может это вам поможет

   Franchiser

23 — 01.11.22 — 15:28

(20) зачем мне объект создавать, время на это тратить

   PR

24 — 01.11.22 — 15:28

(22) Научиться читать ему поможет

   Franchiser

25 — 01.11.22 — 15:28

(22) я переношу не по правилам КД2

   PR

26 — 01.11.22 — 15:28

(23) Ой, пардон

Тогда продолжай ебаться дальше

   Franchiser

27 — 01.11.22 — 15:29

(22) и как там это реализовано. Что КД 2 создает объекты?

   Kassern

28 — 01.11.22 — 15:30

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

   Kassern

29 — 01.11.22 — 15:31

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

   Kassern

30 — 01.11.22 — 15:31

А может вы тупо забыли период указать)

   Franchiser

31 — 01.11.22 — 15:32

(28) из-за битой ссылки может быть такая ошибка, или копать в другую сторону?

Период указан

   Курцвейл

32 — 01.11.22 — 15:32

Сам сериализуй объекты-движения, сам потом десериализуй в своей обработке. Вообще не понятно в чем проблема. Всегда и так норм работало.

   Kassern

33 — 01.11.22 — 15:33

(31) Вы можете это легко проверить. Укажите нормальную ссылку, если даст провести, а с битой не дает, значит, дело в этом реквизите

   Kassern

34 — 01.11.22 — 15:34

и покажите как вы битую ссылку создаете, скиньте кусок кода

   Franchiser

35 — 01.11.22 — 15:34

тут перенос документа с движениями.

   Franchiser

36 — 01.11.22 — 15:34

я ее не создаю, она есть в файле импорта

   Kassern

37 — 01.11.22 — 15:37

(36) Так наверное надо создать?

   Курцвейл

38 — 01.11.22 — 15:38

(37) Не надо ничего создавать.

   Курцвейл

39 — 01.11.22 — 15:38

ЧтениеXML = Новый ЧтениеXML;

    ЧтениеXML.ОткрытьФайл(ИмяСохрФ);

    //читаем корень

    ЧтениеXML.Прочитать();

    //читаем записи

    ЧтениеXML.Прочитать();

    
    Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл

        ОбъектРС = ПрочитатьXML(ЧтениеXML);

        Попытка

            ОбъектРС.ОбменДанными.Загрузка = Истина;

        Исключение

        КонецПопытки;

        
        Попытка

            ОбъектРС.Записать();

        Исключение

            Сообщить(ОписаниеОшибки());

        КонецПопытки;

        
    КонецЦикла;

    
    ЧтениеXML.Закрыть();

   Курцвейл

40 — 01.11.22 — 15:40

(37) Если ссылка стоит, пусть даже битая. значит она заполнена, проблемы не будет.

   PR

41 — 01.11.22 — 15:40

(38) В принципе, можно перед записью набора проверять, нет ли битой ссылки или обращаться к полю битой ссылки

И делать это даже без проверки на ОбменДанными.Загрузка

   Franchiser

42 — 01.11.22 — 15:41

(41) зачем

   KJlag

43 — 01.11.22 — 15:44

(42) а для чего тебе записи рс с битыми ссылками?

есть мнение, что им нужны только те записи, с объектами, что были до разделения баз?

или я не правильно понимаю задачу и додумываю свое?

   PR

44 — 01.11.22 — 15:50

(42) 42

   Serg_1960

45 — 01.11.22 — 16:08

(39) Классика жанра:

Попытка

   ОбъектРС.ОбменДанными.Загрузка = Истина;

   ОбъектРС.Записать();

Исключение

   Сообщить(ОписаниеОшибки());

КонецПопытки;

   Franchiser

46 — 01.11.22 — 16:08

(43) так задача поставлена

   piter3

47 — 01.11.22 — 16:09

(46) Может переспросить?

   Franchiser

48 — 01.11.22 — 16:11

Кажется я понял в чем дело: гуид собконто не совпадает

   Franchiser

49 — 01.11.22 — 16:14

(43) нужно ускорить перенос данных, и попросили убрать перенос объектов для экономии времени

   Serg_1960

50 — 01.11.22 — 16:14

PS: имхо, у «Ошибка при вызове метода контекста (Записать): Запись не верна!» должно быть продолжение. Иначе «это» даже внутриплатформенный контроль не прошло.

   Serg_1960

51 — 01.11.22 — 16:20

(49) Имхо, переноси регистры «как есть». Из-за того, что ссылки не переносятся (справочники/документы), — не надо каких-то специальных реверансов делать — они «сами собой» станут битыми :)

  

Franchiser

52 — 01.11.22 — 16:28

(51) тут была цель понять причину ошибки Ошибка была из-за несовпадения гуидов ПВХ

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

1.1. Ошибка записи объекта:
Тип объекта = Регистр сведений запись: Настройки учета страховых взносов
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым.

Устранение ошибки: В ПКО «УчетСтраховыхВзносовНастройкиОрганизаций» для свойства «Организация» не указано ПКО

1.2. Ошибка в обработчике события ПередЗагрузкойДанных (конвертация)
Описание ошибки = Ошибка при вызове метода контекста (СоздатьНабор): Недопустимое значение параметра (параметр номер ‘1’)

Устранение ошибки: Константа «ВедетсяДеятельностьПоДоговорамКомиссииНаПродажу» не существует. Удалил ссылку на нее.

1.3. Ошибка при загрузке данных: Поле объекта не обнаружено (ПоложенияПереходногоПериодаУСН)

Устранение ошибки: Указанный реквизит регистра сведений «УчетнаяПолитикаОрганизаций» переименован в «УдалитьПоложенияПереходногоПериодаУСН». Отключил для переноса.

1.4. Ошибка записи объекта
Тип объекта = Вид вычетов НДФЛ
Описание ошибки = Ошибка при вызове метода контекста (Записать): Не удалось записать «103 (Вид вычетов НДФЛ)»!

Устранение ошибки: Для ПКО «ВидыВычетовНДФЛ» поставил крыж «Не замещать существующие». Непонятно только почему для предопределенных объектов это не отслеживается в процессе загрузки по умолчанию!?

1.5. Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение поля «Контрагент» не заполнено или заполнено неверно

Устранение ошибки: Так и не понял как с зтим бороться. Отключил загрузку реквизитов контрагента «Основной договор» и «Основной счет». Поставил крыж «Загружать только новые».

После выгрузки объекта отключил проверку ИНН и КПП

Если НЕ Объект.ЭтоГруппа Тогда
Объект.ИННВведенКорректно = Истина;
Объект.КППВведенКорректно = Истина;
КонецЕсли;

Вроде помогло.

1.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущие кадровые данные сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении: Значение не является значением объектного типа (Ссылка)

Устранение ошибки: Такое ощущение, что шло зацикливание (при загрузке) когда в регистре шла ссылка на сотрудника, а в нем — на данный регистр, но почему при загрузке? Выгрузилось то нормально!
Создал ПКО «СотрудникиСсылка» (не замещать, а только новые) со свойствами для поиска:

  • Наименование
  • Организация
  • Физическое лицо

и сослался на него в свойстве «Сотрудник» указанного регистра 

1.7. Ошибка в обработчике события ПослеЗагрузкиДанных (конвертация)
Описание ошибки = Поле объекта не обнаружено (Организация)

Устранение ошибки: Для параметра «ОРГАНИЗАЦИЯ» проставил крыж «При загрузке» и указал правило конвертации «Организации»

1.8. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущая тарифная ставка сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Физическое лицо» не может быть пустым!:

Устранение ошибки: Вместо двух свойств «Сотрудник» в правиле конвертации достаточно одного. И добавить «ФизическоеЛицо», «ТекущаяОрганизация»
Для «Сотрудник» назначил правило «СотрудникСсылка».

2. Теперь пытаемся загрузить документы.

2.1 Не проводятся после загрузки!
прописал в обработчик «Перед конвертацией объекта»

Если ТипЗначенияСтр(Источник) = "Документ" Тогда
Если (Источник.Вид() = "Счет")
ИЛИ (Источник.Вид() = "Доверенность")
ИЛИ (Источник.Вид() = "ПлатежноеПоручение")
Тогда
Если Источник.ПометкаУдаления() = 0 Тогда РежимЗаписи = "Проведение"; КонецЕсли;
Иначе
Если Источник.Проведен() = 1 Тогда РежимЗаписи = "Проведение"; КонецЕсли;
КонецЕсли;
КонецЕсли;

2.2 Ошибка при загрузке данных: Поле объекта не обнаружено (Услуги)
Смею предположить, что это «Счет на оплату покупателю» в котором указанную табличную часть подготовили к удалению.

Устранение ошибки: В ПКО «Счет» ее отключил и пометил на удаление. В коллекцию «Товары» добавил свойство «Содержание» и прописал его заполнение.

2.3 Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Поле «Вид договора» заполнено некорректно.
Существуют документы, проведенные по договору. Реквизит не может быть изменен.

Устранение ошибки: В ПКО «Договоры контрагентов» свойство «ВидДоговора» вытащил из группы и назначил отбор по его значению (для элемента)
В ПКО «ДоговорыКонтрагентовПоВидам» — то же самое (не знаю зачем оно вобще нужно!).

Вообще с определением вида договора реальная проблема!
В ПКО документа «Счет» для свойства «Договор» перед выгрузкой прописал

Параметры.ПараметрыАлгоритмов.Установить("Документ",Источник);
Параметры.ПараметрыАлгоритмов.Установить("Договор",Источник.Договор);
ОпределитьВидДоговора();

подкорректировал апгоритм ОпределитьВидДоговора
1. Для документа «Платежное поручение».
2. Для пустого документа, когда передается только счет б/у.

В ПКО «ДоговорыКонтрагентов» закомментировал

//Параметры.ПараметрыАлгоритмов.Установить("ВидДоговора","");
//Параметры.ПараметрыАлгоритмов.Установить("ВесДоговора","");

Похоже, из-за этого вид договора не передавался в соответствующее свойство при выгрузке!

2.4 Ошибка записи объекта
Тип объекта = Сотрудник
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение «0000000009» поля «Таб. номер» не уникально

Устранение ошибки: Проблема загрузки Документа типа Выписка при перечислении зарплаты на л/с сотрудников. Попытка конвертации сотрудников в контрагенты.
В моей конкретной ситуации расчет зарплаты и кадровый учет ведется в ЗиК 77 (сейчас переходим на ЗУП 83) и переносится в бухгалтерию СВОДНО. Поэтому решил не заморачиваться, а просто прорисовать конкретную ситуацию.

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

  • добавить новый параметр «УчетПоСтрудникамСводно» (Зарплата без детализации по сотрудникам);
  • закомментировать несколько строк кода конвертации «Перед загрузкой данных»;
  • настроил вручную параметры учета для блока «Зарплата и кадры».

2.5. Перекроил модуль «При выгрузке» ПКО «Выписка_Списание» (там много всего «по мелочам»)
Ну, например, добавил реквизит «Налог». 
А в платежном поручении — «Налог» и «Вид операции».

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

2.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Процент ЕНВД для учета затрат на зарплату
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым!:

Устранение ошибки: В ПКО «ВводПроцентаДеятельностиЕНВД» для свойства «Организация» прописал правило конвертации

3. Кроме всего прочего

Для плана не все значения счетов могут быть синхронизированы. В нашем конкретном случае отсутствовали добавленные в ручную счета:

  • 50.2 с 50.02 «Операционная касса»;
  • 68.8 и 68.08 «Налог на имущество»;
  • субсчета счета 68.4 «Налог на прибыль».

Их нужно добавить в список значений ПКО «План счетов — Хозрасчетный»

А именно «Запись не верна!»?

в случае, если запись не верна

В каких случаях запись может быть не верна? Код вроде правильный. Если я вручную в регистре меняю, то все меняется. Регистр непериод, независимый. Ошибка: {Форма.Форма}: Ошибка при вызове метода контекста (Записать): Запись не верна! : 2 : укщжр2 :  :  : ТОМИКС ООО ТД (Регистр сведений: Свод заказов по товару; Номер строки: 1; Поле: Группа)        Свод.Записать; по причине: Запись не верна! : 2 : укщжр2 :  :  : ТОМИКС ООО ТД (Регистр сведений: Свод заказов по товару; Номер строки: 1; Поле: Группа)

Она пишет что мол поле Группа не верно. Но у меня оно строкового тоиппа, а я и присваиваю строку. ???

а реквизит Группа точно текстовый?

проблема в установленном отборе набора записей

Точно: Измерение Группа — Тип Строка — Длина 50 — Длина переменная

Т.е. нельзя установить отбор, и тут же его изменять?

проблема в том что при заданном отборе ругается при изменении измерений, участвующих в отборе

Тогда как мне поменять значение поля группа с «укщжр» на «укщжр2» ?

если же отбор изменить перед записью, то вроде должно быть все ок

хотя нет, вру. он просто добавит новые записи

Измерение типа «строка» — ну-ну

+12 с такими измерениями могут возникнуть проблемы. например в отборе не учитывается регистр. потом может «упасть» при использовании планов обмена

Че ну-ну? Лучше на ответь.

я не буду отвечать на . структура регистра спроектирована безграмотно.

если нет условия использовать именно набор записей, то можно записать каждую запись отдельно

Т.е.  сначала в ТЗ, потом этот стереть набор, а потом добавлять записи из ТЗ. Почему безграмотно? Из-за типа «строка»? т.е. надо было создавать справочник «Группа» что-ли?

Тэги:

Комментарии доступны только авторизированным пользователям

1С:Предприятие 8.2 (8.2.17.153)

Создаю документ «заказ клиента»:

НовыйДок = Документы.ЗаказКлиента.СоздатьДокумент();

заполняю поля "Дата", "Контрагент", …

Добавляю товары. Заполняю у них поля Номенклатура, Количество, КоличествоУпаковок, Цена, Сумма, СтавкаНДС, Склад.

Записываю документ:

НовыйДок.Записать(РежимЗаписиДокумента.Проведение);

1с выдает ошибку:

{ОбщийМодуль.ДополнительныйМодуль.Модуль(247)}:
Ошибка при вызове метода контекста
(Записать): Запись не верна! Период не
может быть пустым! (Регистр
накопления: Движение товаров; Номер
строки: 1)

Пытался добавить этот период и к самому документу и к товарам, но выдает ошибку: «Поле объекта не обнаружено».

Что за сие "Период" и куда его прикрутить?

Где спрятана ошибка? Все теже изменения регистров сведений.

Я
   SurFace

15.04.09 — 17:59

НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();

   

   НаборЗаписей.Отбор.Вид.Значение = ОпределениеСсылкиВидаНоменклатуры(«000000001»);

   НаборЗаписей.Отбор.Вид.ВидСравнения = ВидСравнения.Равно;

   НаборЗаписей.Отбор.Вид.Использование = Истина;

   НаборЗаписей.Прочитать();

   Для Каждого Запись Из НаборЗаписей Цикл

     Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;

   КонецЦикла;

   НаборЗаписей.Записать(Истина)

Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля не соответствует установленному отбору: Навигатор : Адрес : Юридический адрес (Регистр сведений: Контактная информация; Номер строки: 1; Поле: Вид)

   НаборЗаписей.Записать(Истина)

по причине:

Запись не верна! Значение поля не соответствует установленному отбору: Навигатор : Адрес : Юридический адрес (Регистр сведений: Контактная информация; Номер строки: 1; Поле: Вид)

   garcevis

1 — 15.04.09 — 18:02

Вот эта штука ОпределениеСсылкиВидаНоменклатуры(«000000001») получается не равна

Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента

Надо другой отбор ставить, не по этому измерению.

   SurFace

2 — 15.04.09 — 18:15

да, сначало это условие выполняется — но потом это измерение изменяется и после этого должна произойти запись, но оное ругается. А другого то отбора и не придумать =(

   Mort

3 — 15.04.09 — 18:18

Ну вы жжете. Читаете с одним видом, записываете с другим.

Делай два набора. Один с отобором по виду старому, другой по новому. Через загрузку-выгрузку ТЗ переливаешь содежимое из 1 во 2-й. В ТЗ можно будет проставить значение вида на всю колонку сразу кстати. 1 очищаешь и записываешь, 2-й просто записываешь.

   Mort

4 — 15.04.09 — 18:20

тока надо понимать что существующие записи 2 вида будут очищены.

   SurFace

5 — 15.04.09 — 18:32

спасиб, все додумал — упростил

   НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();

   
   НаборЗаписей.Прочитать();

   Для Каждого Запись Из НаборЗаписей Цикл

       Если Запись.Вид = ОпределениеСсылкиВидаНоменклатуры(«000000001») Тогда

           Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;

       КонецЕсли;

   КонецЦикла;

   НаборЗаписей.Записать(Истина)

   NcSteel

6 — 15.04.09 — 18:36

НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();

       НаборЗаписей.Отбор.Вид.Значение = ОпределениеСсылкиВидаНоменклатуры(«000000001»);
   НаборЗаписей.Отбор.Вид.ВидСравнения = ВидСравнения.Равно;
   НаборЗаписей.Отбор.Вид.Использование = Истина;

   НаборЗаписей.Прочитать();

   Для Каждого Запись Из НаборЗаписей Цикл
     Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
   КонецЦикла;
НаборЗаписей.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
   НаборЗаписей.Записать(Истина)

   SurFace

7 — 16.04.09 — 12:42

(6) Спс — интересное изоощерение, прокатит?

  

Mort

8 — 16.04.09 — 12:44

(6) С таким методом в базе останутся записи со старым видом.

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Запись в Регистр сведений

Автор Den, 18 сен 2019, 15:02

0 Пользователей и 1 гость просматривают эту тему.

Всем доброго времени суток!
Если у кого есть время и желание помочь, заранее очень благодарен.
Есть обработка, включить / отключить настройки панели функций у пользователей. Пользователи в таб. часть выбираются. Галочки настроек снимаются и устанавливаются. Но при попытке записать изменения в регистр, выходит ошибка
«{ВнешняяОбработка.СписокПользователей.Форма.Форма.Форма(74)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать(Истина);
по причине: Запись не верна! Значение поля «Пользователь» не может быть пустым!: НастройкиПользователей: ,  (Регистр сведений: Настройки пользователей; Номер строки: 25410)».

Вот Код, подскажите, в чем моя ошибка?

Процедура ЗаписатьНажатие(Элемент)

      Запрос = Новый Запрос;
   Запрос.УстановитьПараметр(«Настройка», ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоКоду(«000000065»));
   Запрос.Текст = «ВЫБРАТЬ
                  |   НастройкиПользователей.Пользователь КАК Пользователь,
                  |   НастройкиПользователей.Настройка КАК Настройка,
                  |   НастройкиПользователей.Значение КАК Значение
                  |ИЗ
                  |   РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
                  |ГДЕ
                  |   НастройкиПользователей.Настройка = &Настройка
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |   Пользователь
                  |АВТОУПОРЯДОЧИВАНИЕ»;

      Рез = Запрос.Выполнить().Выбрать();

      Пока Рез.Следующий() Цикл
      НаборЗаписей = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();
      НаборЗаписей.Прочитать();
      Для Каждого Стр Из ТаблицаПользователей Цикл
         НоваяЗапись = НаборЗаписей.Добавить();
         НоваяЗапись.Пользователь = Стр.ФИО;
         НоваяЗапись.Значение     = Стр.Флаг;
      КонецЦикла;
      НаборЗаписей.Записать(Истина);
   КонецЦикла;

КонецПроцедуры


А какой тип значения у вас: Стр.ФИО?
Должен быть СправочникСсылка.Пользователи скорее всего.



Ну тогда смотрите в отладке, что у вас по ТаблицеПользователей. Пустое значение приходит оттуда.
И кстати с набором записей у вас тоже не корректно:

Пока Рез.Следующий() Цикл
      НаборЗаписей = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей();
      НаборЗаписей.Прочитать();
      Для Каждого Стр Из ТаблицаПользователей Цикл
         НоваяЗапись = НаборЗаписей.Добавить();
         НоваяЗапись.Пользователь = Стр.ФИО;
         НоваяЗапись.Значение     = Стр.Флаг;
....

Я так понимаю задумка такова, что вы считываете текущие значений настроек из регистра и проставляете им булево.
Но по факту вы выбираете все записи по определенной настройке без отбора по пользователям.
Затем для каждой считанной строки вы создаете новый набор записей и для каждой строки какой то таблицы пользователей создаете по ПУСТОЙ строке заполняя в нем всего два поля (Пользователь и флаг, остальные поля пусты) пытаетесь записать, потому как эта конструкция без отбора будет возвращать пустой набор:

НаборЗаписей.Прочитать();



Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Запись в Регистр сведений

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

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

1.1. Ошибка записи объекта:
Тип объекта = Регистр сведений запись: Настройки учета страховых взносов
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым.

Устранение ошибки: В ПКО «УчетСтраховыхВзносовНастройкиОрганизаций» для свойства «Организация» не указано ПКО

1.2. Ошибка в обработчике события ПередЗагрузкойДанных (конвертация)
Описание ошибки = Ошибка при вызове метода контекста (СоздатьНабор): Недопустимое значение параметра (параметр номер ‘1’)

Устранение ошибки: Константа «ВедетсяДеятельностьПоДоговорамКомиссииНаПродажу» не существует. Удалил ссылку на нее.

1.3. Ошибка при загрузке данных: Поле объекта не обнаружено (ПоложенияПереходногоПериодаУСН)

Устранение ошибки: Указанный реквизит регистра сведений «УчетнаяПолитикаОрганизаций» переименован в «УдалитьПоложенияПереходногоПериодаУСН». Отключил для переноса.

1.4. Ошибка записи объекта
Тип объекта = Вид вычетов НДФЛ
Описание ошибки = Ошибка при вызове метода контекста (Записать): Не удалось записать «103 (Вид вычетов НДФЛ)»!

Устранение ошибки: Для ПКО «ВидыВычетовНДФЛ» поставил крыж «Не замещать существующие». Непонятно только почему для предопределенных объектов это не отслеживается в процессе загрузки по умолчанию!?

1.5. Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение поля «Контрагент» не заполнено или заполнено неверно

Устранение ошибки: Так и не понял как с зтим бороться. Отключил загрузку реквизитов контрагента «Основной договор» и «Основной счет». Поставил крыж «Загружать только новые».

После выгрузки объекта отключил проверку ИНН и КПП

Если НЕ Объект.ЭтоГруппа Тогда
Объект.ИННВведенКорректно = Истина;
Объект.КППВведенКорректно = Истина;
КонецЕсли;

Вроде помогло.

1.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущие кадровые данные сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении: Значение не является значением объектного типа (Ссылка)

Устранение ошибки: Такое ощущение, что шло зацикливание (при загрузке) когда в регистре шла ссылка на сотрудника, а в нем — на данный регистр, но почему при загрузке? Выгрузилось то нормально!
Создал ПКО «СотрудникиСсылка» (не замещать, а только новые) со свойствами для поиска:

  • Наименование
  • Организация
  • Физическое лицо

и сослался на него в свойстве «Сотрудник» указанного регистра 

1.7. Ошибка в обработчике события ПослеЗагрузкиДанных (конвертация)
Описание ошибки = Поле объекта не обнаружено (Организация)

Устранение ошибки: Для параметра «ОРГАНИЗАЦИЯ» проставил крыж «При загрузке» и указал правило конвертации «Организации»

1.8. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Текущая тарифная ставка сотрудников
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Физическое лицо» не может быть пустым!:

Устранение ошибки: Вместо двух свойств «Сотрудник» в правиле конвертации достаточно одного. И добавить «ФизическоеЛицо», «ТекущаяОрганизация»
Для «Сотрудник» назначил правило «СотрудникСсылка».

2. Теперь пытаемся загрузить документы.

2.1 Не проводятся после загрузки!
прописал в обработчик «Перед конвертацией объекта»

Если ТипЗначенияСтр(Источник) = "Документ" Тогда
Если (Источник.Вид() = "Счет")
ИЛИ (Источник.Вид() = "Доверенность")
ИЛИ (Источник.Вид() = "ПлатежноеПоручение")
Тогда
Если Источник.ПометкаУдаления() = 0 Тогда РежимЗаписи = "Проведение"; КонецЕсли;
Иначе
Если Источник.Проведен() = 1 Тогда РежимЗаписи = "Проведение"; КонецЕсли;
КонецЕсли;
КонецЕсли;

2.2 Ошибка при загрузке данных: Поле объекта не обнаружено (Услуги)
Смею предположить, что это «Счет на оплату покупателю» в котором указанную табличную часть подготовили к удалению.

Устранение ошибки: В ПКО «Счет» ее отключил и пометил на удаление. В коллекцию «Товары» добавил свойство «Содержание» и прописал его заполнение.

2.3 Ошибка записи объекта
Тип объекта = Договор
Описание ошибки = Ошибка при вызове метода контекста (Записать): Поле «Вид договора» заполнено некорректно.
Существуют документы, проведенные по договору. Реквизит не может быть изменен.

Устранение ошибки: В ПКО «Договоры контрагентов» свойство «ВидДоговора» вытащил из группы и назначил отбор по его значению (для элемента)
В ПКО «ДоговорыКонтрагентовПоВидам» — то же самое (не знаю зачем оно вобще нужно!).

Вообще с определением вида договора реальная проблема!
В ПКО документа «Счет» для свойства «Договор» перед выгрузкой прописал

Параметры.ПараметрыАлгоритмов.Установить("Документ",Источник);
Параметры.ПараметрыАлгоритмов.Установить("Договор",Источник.Договор);
ОпределитьВидДоговора();

подкорректировал апгоритм ОпределитьВидДоговора
1. Для документа «Платежное поручение».
2. Для пустого документа, когда передается только счет б/у.

В ПКО «ДоговорыКонтрагентов» закомментировал

//Параметры.ПараметрыАлгоритмов.Установить("ВидДоговора","");
//Параметры.ПараметрыАлгоритмов.Установить("ВесДоговора","");

Похоже, из-за этого вид договора не передавался в соответствующее свойство при выгрузке!

2.4 Ошибка записи объекта
Тип объекта = Сотрудник
Описание ошибки = Ошибка при вызове метода контекста (Записать): Значение «0000000009» поля «Таб. номер» не уникально

Устранение ошибки: Проблема загрузки Документа типа Выписка при перечислении зарплаты на л/с сотрудников. Попытка конвертации сотрудников в контрагенты.
В моей конкретной ситуации расчет зарплаты и кадровый учет ведется в ЗиК 77 (сейчас переходим на ЗУП 83) и переносится в бухгалтерию СВОДНО. Поэтому решил не заморачиваться, а просто прорисовать конкретную ситуацию.

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

  • добавить новый параметр «УчетПоСтрудникамСводно» (Зарплата без детализации по сотрудникам);
  • закомментировать несколько строк кода конвертации «Перед загрузкой данных»;
  • настроил вручную параметры учета для блока «Зарплата и кадры».

2.5. Перекроил модуль «При выгрузке» ПКО «Выписка_Списание» (там много всего «по мелочам»)
Ну, например, добавил реквизит «Налог». 
А в платежном поручении — «Налог» и «Вид операции».

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

2.6. Ошибка записи объекта
Тип объекта = Регистр сведений запись: Процент ЕНВД для учета затрат на зарплату
Описание ошибки = Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля «Организация» не может быть пустым!:

Устранение ошибки: В ПКО «ВводПроцентаДеятельностиЕНВД» для свойства «Организация» прописал правило конвертации

3. Кроме всего прочего

Для плана не все значения счетов могут быть синхронизированы. В нашем конкретном случае отсутствовали добавленные в ручную счета:

  • 50.2 с 50.02 «Операционная касса»;
  • 68.8 и 68.08 «Налог на имущество»;
  • субсчета счета 68.4 «Налог на прибыль».

Их нужно добавить в список значений ПКО «План счетов — Хозрасчетный»

А именно «Запись не верна!»?

в случае, если запись не верна

В каких случаях запись может быть не верна? Код вроде правильный. Если я вручную в регистре меняю, то все меняется. Регистр непериод, независимый. Ошибка: {Форма.Форма}: Ошибка при вызове метода контекста (Записать): Запись не верна! : 2 : укщжр2 :  :  : ТОМИКС ООО ТД (Регистр сведений: Свод заказов по товару; Номер строки: 1; Поле: Группа)        Свод.Записать; по причине: Запись не верна! : 2 : укщжр2 :  :  : ТОМИКС ООО ТД (Регистр сведений: Свод заказов по товару; Номер строки: 1; Поле: Группа)

Она пишет что мол поле Группа не верно. Но у меня оно строкового тоиппа, а я и присваиваю строку. ???

а реквизит Группа точно текстовый?

проблема в установленном отборе набора записей

Точно: Измерение Группа — Тип Строка — Длина 50 — Длина переменная

Т.е. нельзя установить отбор, и тут же его изменять?

проблема в том что при заданном отборе ругается при изменении измерений, участвующих в отборе

Тогда как мне поменять значение поля группа с «укщжр» на «укщжр2» ?

если же отбор изменить перед записью, то вроде должно быть все ок

хотя нет, вру. он просто добавит новые записи

Измерение типа «строка» — ну-ну

+12 с такими измерениями могут возникнуть проблемы. например в отборе не учитывается регистр. потом может «упасть» при использовании планов обмена

Че ну-ну? Лучше на ответь.

я не буду отвечать на . структура регистра спроектирована безграмотно.

если нет условия использовать именно набор записей, то можно записать каждую запись отдельно

Т.е.  сначала в ТЗ, потом этот стереть набор, а потом добавлять записи из ТЗ. Почему безграмотно? Из-за типа «строка»? т.е. надо было создавать справочник «Группа» что-ли?

Тэги:

Комментарии доступны только авторизированным пользователям

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Процедура ВыполнитьФормированиеПлан()         //Состояние("Выборка данных (план)...");     Запр = Новый Запрос;     Запр.Текст =     "ВЫБРАТЬ     |   осиПЭОПриказ1.Наименование КАК НоменклатураПЭО,     |   осиПЭОПриказ1.Количество * осиПЭОПриказ1.Цена * 1000 КАК Сумма,     |   осиПЭОПриказ1.Подразделение КАК ПодразделениеПЭО,     |   ВЫБОР     |       КОГДА осиПЭОПриказ1.Пассив = &Строительство     |           ТОГДА &Счет106     |       КОГДА осиПЭОПриказ1.Пассив = &Приобретение     |           ТОГДА &Счет107     |       КОГДА осиПЭОПриказ1.Пассив = &ИнвестПроекты     |           ТОГДА &Счет108     |   КОНЕЦ КАК СчетПЭО,     |   ВЫБОР     |       КОГДА осиПЭОПриказ1.Пассив = &Строительство     |           ТОГДА NULL     |       ИНАЧЕ осиПЭОПриказ1.Количество     |   КОНЕЦ КАК Количество     |ИЗ     |   РегистрСведений.осиПЭОПриказ1 КАК осиПЭОПриказ1     |ГДЕ     |   осиПЭОПриказ1.Период МЕЖДУ &НачДата И &КонДата     |   И (осиПЭОПриказ1.Пассив = &Приобретение     |           ИЛИ осиПЭОПриказ1.Пассив = &Строительство ИЛИ осиПЭОПриказ1.Пассив = &ИнвестПроекты)     |   И осиПЭОПриказ1.Приоритет = 0";     Запр.УстановитьПараметр("НачДата", НачалоМесяца(Объект.ЗаПериод));     Запр.УстановитьПараметр("КонДата", КонецМесяца(Объект.ЗаПериод));     Запр.УстановитьПараметр("Приобретение", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "_Приобретение оборудования"));     Запр.УстановитьПараметр("Строительство", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "Капитальное строительство"));     Запр.УстановитьПараметр("ИнвестПроекты", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "_Инвестиционные проекты"));     Запр.УстановитьПараметр("Счет106", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "106"));     Запр.УстановитьПараметр("Счет107", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "107"));     Запр.УстановитьПараметр("Счет108", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "108"));         ТЗ=Запр.Выполнить().Выгрузить();       Выборка = Запр.Выполнить().Выбрать();             //Состояние("Формирование проводок (план)...");     Сценарий = ПолучитьЭлемент("Справочник", "Инт_Сценарии", "Наименование", "План");         ЦФО = ПолучитьЭлемент("Справочник", "Инт_ЦФО", "Наименование", "ЦЗ ""Оренбургские минералы""");     ВидСубконтоНоменклатураПЭО = ПолучитьЭлемент("ПланВидовХарактеристик", "ИНТ_Аналитика", "Код", "00000000042");//Номенклатура ПЭО     ВидСубконтоПодразделенияПЭО = ПолучитьЭлемент("ПланВидовХарактеристик", "ИНТ_Аналитика", "Код", "00000000053");//Подразделения ПЭО         Счет00 = ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "0");         Проформа = ПолучитьПроформу(Сценарий).ПолучитьОбъект();     ДвиженияУпр2 = Проформа.Движения.Инт_Управленческий2;      ДвиженияУпр2.Очистить();         Пока Выборка.Следующий() Цикл         Проводка = ДвиженияУпр2.Добавить();         Проводка.Период = КонецМесяца(Объект.ЗаПериод);         Проводка.Содержание = "авт.загр.";         Проводка.СчетДт = Выборка.СчетПЭО;         Проводка.СчетКт = Счет00;         Проводка.Сценарий = Сценарий;         Проводка.Сумма = Выборка.Сумма;         Проводка.ЦФОДт = ЦФО;         Если Выборка.Количество<> 0  Тогда             Проводка.КоличествоДт = Выборка.Количество;         КонецЕсли;                         Проводка.Субконто1Дт= Выборка.НоменклатураПЭО;         Проводка.Субконто2Дт = Выборка.ПодразделениеПЭО;                       КонецЦикла;         ДвиженияУпр2.Записать();             //Состояние();     КонецПроцедуры

  • Ошибка при вызове метода контекста выбрать использование синхронных методов на клиенте запрещено
  • Ошибка при вызове метода контекста записать 1с отчетность
  • Ошибка при вызове метода контекста загрузитьправилаобмена
  • Ошибка при вызове метода контекста вставить элементы
  • Ошибка при вызове метода контекста занять сканер