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

 

Партнёрская программа 1С и Бланка

 

Я
   nany11

12.07.13 — 02:07

Подскажите что делать поставила новое обновление по Бух учету и при формировании отчета о финансовом положении возникает ошибка

{Обработка.БухгалтерскиеИтоги.МодульОбъекта(353)}: Ошибка при вызове конструктора (Структура)

       Группировки = Новый Структура(Группировки, Значение1, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9);

по причине:

Несоответствие типов (параметр номер ‘1’)

   Cube

1 — 12.07.13 — 04:40

(0) «поставила новое обновление по Бух учету»

Сразу видно — не специалист…

Ну рассказывай как обгонял, как подрезал…

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

   nany11

2 — 12.07.13 — 04:51

Извините, была 1с Бухгалетрия Базовая 2.0.49.11, а сейчас 2.0.49.8

   nany11

3 — 12.07.13 — 04:51

точнее сейчас 2.0.49.15

   nany11

4 — 12.07.13 — 17:50

Не удели никто не знает как поправить?

  

BlackJack

5 — 22.07.13 — 14:29

Зайдите в базу версией 8.2, а не 8.3.

Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO

  

Лис Локи

02.02.12 — 07:46

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение:

Недопустимое значение параметра (параметр номер ‘1’)

Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты()

                       

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);    // Отладчик ругается на эту строку.

   УстановитьПоляОтбораПоСКД(СКД);

   

   КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));

   КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

   КомпоновщикНастроек.Восстановить();

   

   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СКД,

          КомпоновщикНастроек.ПолучитьНастройки(), , ,

          Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));

   

   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

   

   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

   ТаблицаРезультатаКомпановки = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

   

   ПостроительЗапроса = Новый ПостроительЗапроса();

   Источник = Новый ОписаниеИсточникаДанных(ТаблицаРезультатаКомпановки);

   ПостроительЗапроса.ИсточникДанных = Источник;

   ПостроительЗапроса.Выполнить();

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

   

   Если НЕ СохранятьИзмененияПользователя Тогда

       Объект.Реализация.Очистить();

       Объект.Оплата.Очистить();

   Иначе

       мТаблицаОплат = Объект.Оплата.Выгрузить();

       Объект.Оплата.Очистить();

   КонецЕсли;

   
   Пока РезультатЗапроса.Следующий() Цикл

       

       Если НЕ СохранятьИзмененияПользователя Тогда

           Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Приход Тогда

               НоваяСтрока = Объект.Реализация.Добавить();

           ИначеЕсли РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда

               НоваяСтрока = Объект.Оплата.Добавить();

           КонецЕсли;

           ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса);

           ДобавитьСвязанныеДокументы(РезультатЗапроса, РезультатЗапроса.ВидыДвиженийПриходРасход);

       Иначе // Скорректируем ТЧ Оплаты, т.к. в реализации было удаление строки

           Если РезультатЗапроса.ВидыДвиженийПриходРасход = Перечисления.CRM_ВидыДвиженийПриходРасход.Расход Тогда

               НоваяСтрока = Объект.Оплата.Добавить();

               ЗаполнитьЗначенияСвойств(НоваяСтрока, РезультатЗапроса);

               

               МассивСтрок = мТаблицаОплат.НайтиСтроки(Новый Структура(«ИдентификаторДокумента, ИдентификаторКорДокумента»,РезультатЗапроса.ИдентификаторДокумента,РезультатЗапроса.ИдентификаторКорДокумента));

               Если НЕ МассивСтрок.Количество() = 0 Тогда

                   НоваяСтрока.Счет = МассивСтрок[0].Счет;

               КонецЕсли;

           КонецЕсли;

       КонецЕсли;

       
   КонецЦикла;

   

   Если НЕ мВремТаблицаРеализации.Количество() = 0 Тогда

       Для Каждого СтрокаРеализации ИЗ Объект.Реализация Цикл

           СтрокаТЗ = мВремТаблицаРеализации.Найти(СтрокаРеализации.ИдентификаторДокумента, «ИдентификаторДокумента»);

           Если НЕ СтрокаТЗ = Неопределено Тогда

               СтрокаРеализации.Счет = СтрокаТЗ.Счет;

           КонецЕсли;

       КонецЦикла;

   КонецЕсли;

   

   Если НЕ мВремТаблицаОплаты.Количество() = 0 Тогда

       Для Каждого СтрокаОплаты ИЗ Объект.Оплата Цикл

           МасивСтрок = мВремТаблицаОплаты.НайтиСтроки(Новый Структура(«ИдентификаторДокумента, ИдентификаторКорДокумента», СтрокаОплаты.ИдентификаторДокумента, СтрокаОплаты.ИдентификаторКорДокумента));

           Если НЕ МасивСтрок.Количество() = 0 Тогда

               СтрокаОплаты.Счет = МасивСтрок[0].Счет;

           КонецЕсли;

       КонецЦикла;

   КонецЕсли;

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

Служебные сообщения:

{Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения(154)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);    

Недопустимое значение параметра (параметр номер ‘1’)

Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

  

Рэйв

1 — 02.02.12 — 07:51

АдресСКД — не строка.

  

Лис Локи

2 — 02.02.12 — 07:52

Ну, на этот кусок. В общем курсор он там останавливает.

  

Рэйв

3 — 02.02.12 — 07:54

(2)Я тебе сказал почему ошибка. А почему АдресСКД  не строка это только отлажчиком на месте определишь.

  

Лис Локи

4 — 02.02.12 — 07:56

О, понял. Мда, глупо получилось.

Как это поглядеть примерно?

  

dva1c

5 — 02.02.12 — 08:03

(4) На строке «СКД = ПолучитьИзВременногоХранилища(АдресСКД)» в конфигураторе, делаешь точку останова (F9 и «красная» точка). Потом в предприятии запускаешь. Когда доходит до этого места происходит переключение в конфигуратор на точку останова. Выделяешь «АдресСКД» и нажимаешь Shift+F9.

В результате видишь табло, где все показано.

Анализируешь, поправляешь и пытаешь снова, пока не исправишь.

  

dva1c

6 — 02.02.12 — 08:09

*(5) пытаешься

  

Лис Локи

7 — 02.02.12 — 08:11

Результат:

Шарады какие-то.

  

Рэйв

8 — 02.02.12 — 08:14

(7)Ну значит пустое значение у него тоже считается недопустимым параметром. Что в принципе логично

  

Лис Локи

9 — 02.02.12 — 08:19

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

Ок, как посмотреть, где оно задается? (код не мой, естественно).

  

Гефест

10 — 02.02.12 — 08:20

(9) Вот в коде и смотри, где ей присваивается значение

  

Лис Локи

11 — 02.02.12 — 08:23

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

  

Гефест

12 — 02.02.12 — 08:25

(11) Может быть это реквизит обработки?

  

Лис Локи

13 — 02.02.12 — 08:32

Т.е.?

Вообще, связанная с СКД в коде выше только эта процедура:

Процедура УстановитьПоляОтбораПоСКД(СКД)

   

   ПолеОрганизация                    = Новый ПолеКомпоновкиДанных(«Организация»);

   ПолеКонтрагент                    = Новый ПолеКомпоновкиДанных(«Контрагент»);

   ПолеОсновнойМенеджерПокупателя    = Новый ПолеКомпоновкиДанных(«ОсновнойМенеджерПокупателя»);

   

   Организация                    = Справочники.Организации.ПустаяСсылка();

   Контрагент                    = Справочники.Контрагенты.ПустаяСсылка();

   ОсновнойМенеджерПокупателя    = Справочники.Пользователи.ПустаяСсылка();

   

       
   Для Каждого Отбор Из СКД.НастройкиПоУмолчанию.Отбор.Элементы Цикл

       Если (Отбор.ЛевоеЗначение = ПолеОрганизация) И Отбор.Использование Тогда

           Организация = Отбор.ПравоеЗначение;

       ИначеЕсли (Отбор.ЛевоеЗначение = ПолеКонтрагент) И Отбор.Использование Тогда

           Контрагент = Отбор.ПравоеЗначение;

       ИначеЕсли (Отбор.ЛевоеЗначение = ПолеОсновнойМенеджерПокупателя) И Отбор.Использование Тогда

           ОсновнойМенеджерПокупателя = Отбор.ПравоеЗначение;

       КонецЕсли;

   КонецЦикла;

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

  

Гефест

14 — 02.02.12 — 08:35

(13) В обработке на закладке Данные есть АдресСКД или нет?

  

Гефест

15 — 02.02.12 — 08:35

Среди реквизитов то есть?

  

Лис Локи

16 — 02.02.12 — 08:38

В «Обработке», которая в окне «Конфигурация» — вроде нет.

  

dva1c

17 — 02.02.12 — 08:41

(16) Т.е. хочешь сказать: Обработки -> «Твоя обработка» -> реквизиты — пусто?

Значит надо добавлять реквизит, который надо заполнять.

  

Галахад

18 — 02.02.12 — 08:42

(17) А чего туда писать?

  

Лис Локи

19 — 02.02.12 — 08:43

Собственно да, предугадал вопрос.

  

Fish

20 — 02.02.12 — 08:44

(16) А может это реквизит формы?

  

dva1c

21 — 02.02.12 — 08:45

(18) Исходишь из логики: для чего нужна обработка? Что нужно получить для построения отчета? Пытаешься понять для чего нужен этот «АдресСКД»?

  

dva1c

22 — 02.02.12 — 08:46

(21) -> (19)

(20) Верно построенное предположение. +1

  

Лис Локи

23 — 02.02.12 — 08:50

Да вроде и там (Общиеобщие формы) ничего такого не наблюдается.

Мда. Отчет-обработка.

> для чего нужен этот «АдресСКД»?

Понятия не имею, честно говоря.

Я имею ввиду, я даже не предполагаю, как он ДОЛЖЕН выглядеть.

  

dva1c

24 — 02.02.12 — 08:54

(23) Отчет готовый есть? Что он должен формировать? Неужели не знаешь?

  

Лис Локи

25 — 02.02.12 — 08:57

По идее это должен был быть импорт взаиморасчетов с клиентами.

(Ведомость и остатки). Есть пример, да.

  

dva1c

26 — 02.02.12 — 09:01

(25) Уже не так все плохо. Копай дальше. )

  

Fish

27 — 02.02.12 — 09:03

(23) А глобальный поиск по конфе твоего «АдресСКД» делал?

  

Лис Локи

28 — 02.02.12 — 09:05

>А глобальный поиск по конфе твоего «АдресСКД» делал?

Нет, конечно, ибо 1С изучал «давно и не правда». Как?

  

dva1c

29 — 02.02.12 — 09:06

(28) )) Иконку «Папка с биноклем» видишь? Если — да, то это «Глобальный поиск».

  

Лис Локи

30 — 02.02.12 — 09:10

«Есть папка с увеличительным стеклом», жмакнул, вот что нашло:

Поиск строки «АдресСКД»…

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(154, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1095, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1139, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1148, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1175, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 21) : Новый Структура(«АдресСКД»,АдресСКД));

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 31) : Новый Структура(«АдресСКД»,АдресСКД));

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(270, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(277, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 2) : АдресСКД = Параметры.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 23) : АдресСКД = Параметры.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(292, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(296, 52) : Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 30) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 41) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

Найдено вхождений: 17

  

dva1c

31 — 02.02.12 — 09:12

(30) Лениво анализировать то, что ты тут постишь. Самому очень тяжело?

  

Fish

32 — 02.02.12 — 09:13

(30) Ну вот же:

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД;

Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД;

Вот и смотри там, как этот АдресСКД получается, и для чего нужен :)))

  

Лис Локи

33 — 02.02.12 — 09:14

Проблема в том, что для меня это в основном китайские иероглифы.

Точнее русские, но от этого только грустнее.

Ок, посмотрим-с.

  

Fish

34 — 02.02.12 — 09:15

(33) Тогда может тебе стоит забить на это, и позвать уже специалиста? :))))

  

Лис Локи

35 — 02.02.12 — 09:15

Процедура Настройки(Команда)

   

   Результат = ОткрытьФормуМодально(

       «Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки»,

           Новый Структура(«АдресСКД»,АдресСКД));

   

   Если Результат <> Неопределено Тогда

       АдресСКД = Результат.АдресСКД;

       СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты();

       Модифицированность = Истина;

   КонецЕсли;

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

  

Лис Локи

36 — 02.02.12 — 09:17

Цитируя мою начальницу «Я всё равно бы тыкалась по интернету, как и ты, а так хотя бы время свободное будет».

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

  

dva1c

37 — 02.02.12 — 09:25

(34)+100500 ))

  

Лис Локи

38 — 02.02.12 — 09:32

>Если Результат <> Неопределено Тогда

Это вообще норма?

  

alxxsssar

39 — 02.02.12 — 09:33

Если адрес хранилища, то скорее всего это путь к файлам. Посмотри на форме обработки нет ли реквизита с выбором файла или чего подобного?

  

Лис Локи

40 — 02.02.12 — 09:35

Хм, кажется в общих формах формы «CRM_ОбменДаннымиС1СБухгалтерия» просто нет.

  

alxxsssar

41 — 02.02.12 — 09:43

Где-то должен быть такой реквизит.

  

Лис Локи

42 — 02.02.12 — 09:45

Есть поиск по ним?

  

extrim-style

43 — 02.02.12 — 09:45

(40) это не в общих формах — это в обработках

  

Лис Локи

44 — 02.02.12 — 09:48

Ага, нашел.

Нет, у неё только реквизиты НачалоПериода, КонецПериода, УниверсальныйОбменДанными, ИмяФайлаОбмена, ДатаВыгрузкиДанных.

  

extrim-style

45 — 02.02.12 — 09:53

(44) есть реквизиты обработки, которую ты открываешь, а есть реквизиты формы — открываешь в этой обработке ФормуНастройки и переходишь на вкладку реквизиты.

  

extrim-style

46 — 02.02.12 — 09:54

(0) интересно, какого характера была «настройка». Может проще оттуда топать?

  

Лис Локи

47 — 02.02.12 — 09:56

Ага, открыл. Есть.

  

Лис Локи

48 — 02.02.12 — 09:57

Между объектом и компоновщиком настроек, тип «Строка».

  

Лис Локи

49 — 02.02.12 — 10:12

И куда дальше тыкаться, добрые люди?

  

dva1c

50 — 02.02.12 — 10:16

(49) Все ушли на обед. Я тоже скоро ухожу. )

  

extrim-style

51 — 02.02.12 — 10:16

(49) в (0) в реквизитах формы есть АдресСКД?

  

Лис Локи

52 — 02.02.12 — 10:18

Да, есть!

offtop: Что ли самому потом пойти?

  

extrim-style

53 — 02.02.12 — 10:22

(52) открой модуль этой формы. Встань в самое начало и по Ctrl+F поищи АдресСКД. Место, где АдресСКД присваивается значение — «АдресСКД = …»

  

alxxsssar

54 — 02.02.12 — 10:24

в пользовательской открой и посмотри, он заполнен?

  

Лис Локи

55 — 02.02.12 — 10:25

> открой модуль этой формы

Как, добрая душа?

  

Лис Локи

56 — 02.02.12 — 10:30

>открой модуль этой формы

Ага, нашел, затупил, простите.

  

Лис Локи

57 — 02.02.12 — 10:32

АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

Вот это?

  

extrim-style

58 — 02.02.12 — 10:36

(57) поставь точку останова на этой строчке и посмотри заполнение параметра СКД.

  

Лис Локи

59 — 02.02.12 — 10:39

> поставь точку останова на этой строчке

*тык F9* done!

>посмотри заполнение параметра СКД

Эм, поясни пожалуйста.

  

extrim-style

60 — 02.02.12 — 10:47

(59) смотри (5)

  

  

Лис Локи

61 — 02.02.12 — 10:56

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

И табло не вызывается по шифт+f9 теперь.

  

extrim-style

62 — 02.02.12 — 11:11

(61) варианты — конфигуратор закрыт. Если открыт — переоткрой всё снова, и поставь точку в этой строке. Если не заходит, поставь точку выше. Возможно (57) находится в другой процедуре и нужно поискать другое присвоение АдресСКД и там уже ставить точку и смотреть. Если ни то, ни другое — курить, почему не заходит в эту процедуру.

  

Лис Локи

63 — 02.02.12 — 11:18

> Если ни то, ни другое — курить, почему не заходит в эту процедуру.

А возможно ли это закомментить и написать свое, аналогичное? Я имею ввиду, насколько там большая простыня должна быть?

  

extrim-style

64 — 02.02.12 — 11:26

(63) прежде чем что-то писать, нужно знать что писать.

лучше вспомнить, что в (0) настраивали

  

Лис Локи

65 — 02.02.12 — 11:29

По идее — форму для «Загрузки взаиморасчетов с клиентам».

  

extrim-style

66 — 02.02.12 — 11:38

(65) Если больше присвоения АдресСКД в форме нет, то тогда в (57) смотри присвоение СКД, т.к. скорей всего что-то не присваивается. В какой процедуре находится?

  

Лис Локи

67 — 02.02.12 — 11:44

(57) находится в «Сохранить настройки»:

Процедура СохранитьНастройки()

   КомпоновщикНастроек.Восстановить();

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   НастройкиСКД          = СКД.НастройкиПоУмолчанию;

   НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки();

   ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД);

   СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика);

   АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

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

  

extrim-style

68 — 02.02.12 — 11:53

(68) по Ctrl+F сделай поиск в модуле СохранитьНастройки — посмотри, в каких процедурах/функциях вызывается.

  

Лис Локи

69 — 02.02.12 — 11:57

Вот здесь только:

Процедура ЗавершитьРедактирование(Команда)

   СохранитьНастройки();

   

   СтруктураВозврата = Новый Структура;

   СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

   
   Закрыть(СтруктураВозврата);

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

  

extrim-style

70 — 02.02.12 — 12:03

В пользовательском режиме открой обработку Обработка.CRM_ОбменДаннымиС1СБухгалтерия (называется как в поле Синоним), посмотри, может что прояснится, какие-то параметры не установлены может.

  

Лис Локи

71 — 02.02.12 — 12:07

>В пользовательском режиме

Т.е. не из конструктора?

  

alxxsssar

72 — 02.02.12 — 12:09

просто 1с предприятие открой, открой эту обработку, найди какую-нибудь закладку, кнопку или что-нибудь с надписью «Настройки» и посмотри что там у тебя заполнено

  

dva1c

73 — 02.02.12 — 12:14

*Вернулся с попкорном.

  

alxxsssar

74 — 02.02.12 — 12:17

(73) отсыпь, я голодный)))

  

Лис Локи

75 — 02.02.12 — 12:49

Так, нашел кнопку с надписью «настройки». Большую такую. И там до фига, но ничего про СКД что-то нема.

А сама обработка же не запускается, даже форма не появляется, тупо «Недопустимое значение параметра (параметр номер ‘1’) «.

  

Лис Локи

76 — 02.02.12 — 12:50

Кстати, господа, через 2 часа мой раочий день кончается, но завтра цирк продолжится.

  

Лис Локи

77 — 02.02.12 — 12:50

*рабочий

  

extrim-style

78 — 02.02.12 — 12:55

(75) попробуй покурить правильное заполнение и сохранение настроек этой обработки

  

Лис Локи

79 — 02.02.12 — 12:58

В этом проблема. Я по этой 1С CRM Стандарт мануалов вообще не нашел в инете. Может я что-то не так ищу? Или не знаю правильного названия?

  

extrim-style

80 — 02.02.12 — 13:00

(79) а, ну теперь понятно, откуда «настройка» из (0) пошла =)

  

Лис Локи

81 — 02.02.12 — 13:09

Так объясните мне пожалуйста, в чем развязка этого детектива с 1С?)

  

alxxsssar

82 — 02.02.12 — 13:37

так может на форме она имеет другое название. посмотри что-нибудь похожее или выложи ссыль на скан формы

  

alxxsssar

83 — 02.02.12 — 13:38

+(82) формы настроек

  

alxxsssar

84 — 02.02.12 — 13:38

+(81) или в конфигураторе полазай по полям формы настроек и через их свойства (ПКМ) смотри имя реквизита

  

Лис Локи

85 — 02.02.12 — 13:57

И если что-то такое найду, что на что исправить?

  

alxxsssar

86 — 02.02.12 — 13:58

если он в пользовательской пустой, то заполни. что вводить — уж извини, тебе лучше знать

  

Лис Локи

87 — 02.02.12 — 14:06

Так, в пользовательской я его не нашел.

В реквизитах:

Имя: АдресСКД

Заголовок: Адрес СКД

Основной реквизит — не выбрано.

Сохраняемые данные — не выбрано.

Функциональных опций — нет.

Проверка заполнения — не проверять.

  

extrim-style

88 — 02.02.12 — 14:07

(81) в (67) только пересохранение настроек. Должно быть где-то еще присвоение АдресСКД. Посмотри в процедурах ПриОткрытии и ПередОткрытием, и еще, кроме модуля формы, есть модуль объекта. ПКМ на обработку в дереве метаданных — открыть модуль объекта — там поищи присвоение АдресСКД.

  

Лис Локи

89 — 02.02.12 — 14:11

Обработке я выбрал «Обмен данными 1С и т.п.», правой клавишей, модуль объекта — и девственно чистый лист распахнул свои объятья. Видимо опять не туда.

>процедурах ПриОткрытии и ПередОткрытием

А они-то где, добрый человек?

  

extrim-style

90 — 02.02.12 — 14:14

(89) вот в этой пусто? — Обработка.CRM_ОбменДаннымиС1СБухгалтерия?

ПриОткрытии и ПередОткрытием в модуле формы, но может и не быть.

  

alxxsssar

91 — 02.02.12 — 14:17

отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме.

  

Лис Локи

92 — 02.02.12 — 14:17

Да, оно пусто.

  

Лис Локи

93 — 02.02.12 — 14:18

Процедура СкопироватьЭлементы(ПриемникЗначения, ИсточникЗначения, ПроверятьДоступность = Ложь, ОчищатьПриемник = Истина)

   

   Если ТипЗнч(ИсточникЗначения) = Тип(«УсловноеОформлениеКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ВариантыПользовательскогоПоляВыборКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ОформляемыеПоляКомпоновкиДанных»)

       Или ТипЗнч(ИсточникЗначения) = Тип(«ЗначенияПараметровДанныхКомпоновкиДанных») Тогда

       
       СоздаватьПоТипу = Ложь;

       
   Иначе

       
       СоздаватьПоТипу = Истина;

       
   КонецЕсли;

   

   ПриемникЭлементов = ПриемникЗначения.Элементы;

   ИсточникЭлементов = ИсточникЗначения.Элементы;

   Если ОчищатьПриемник Тогда

       ПриемникЭлементов.Очистить();

   КонецЕсли;

   
   Для каждого ЭлементИсточник Из ИсточникЭлементов Цикл

       
       Если ТипЗнч(ЭлементИсточник) = Тип(«ЭлементПорядкаКомпоновкиДанных») Тогда

           

           // Элементы порядка добавляем в начало

           Индекс = ИсточникЭлементов.Индекс(ЭлементИсточник);

           ЭлементПриемник = ПриемникЭлементов.Вставить(Индекс, ТипЗнч(ЭлементИсточник));

           
       Иначе

           

           Если СоздаватьПоТипу Тогда

               ЭлементПриемник = ПриемникЭлементов.Добавить(ТипЗнч(ЭлементИсточник));

           Иначе

               ЭлементПриемник = ПриемникЭлементов.Добавить();

           КонецЕсли;

           
       КонецЕсли;

       

       ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);

       // В некоторых коллекциях необходимо заполнить другие коллекции

       Если ТипЗнч(ИсточникЭлементов) = Тип(«КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных») Тогда

           

           СкопироватьЭлементы(ЭлементПриемник.Поля, ЭлементИсточник.Поля);

           СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);

           ЗаполнитьЭлементы(ЭлементПриемник.Оформление, ЭлементИсточник.Оформление);

           
       ИначеЕсли ТипЗнч(ИсточникЭлементов)    = Тип(«КоллекцияВариантовПользовательскогоПоляВыборКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник.Отбор, ЭлементИсточник.Отбор);

           
       КонецЕсли;

       

       // В некоторых элементах коллекции необходимо заполнить другие коллекции

       Если ТипЗнч(ЭлементИсточник) = Тип(«ГруппаЭлементовОтбораКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ГруппаВыбранныхПолейКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник, ЭлементИсточник);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ПользовательскоеПолеВыборКомпоновкиДанных») Тогда

           
           СкопироватьЭлементы(ЭлементПриемник.Варианты, ЭлементИсточник.Варианты);

           
       ИначеЕсли ТипЗнч(ЭлементИсточник) = Тип(«ПользовательскоеПолеВыражениеКомпоновкиДанных») Тогда

           

           ЭлементПриемник.УстановитьВыражениеДетальныхЗаписей (ЭлементИсточник.ПолучитьВыражениеДетальныхЗаписей());

           ЭлементПриемник.УстановитьВыражениеИтоговыхЗаписей(ЭлементИсточник.ПолучитьВыражениеИтоговыхЗаписей());

           ЭлементПриемник.УстановитьПредставлениеВыраженияДетальныхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияДетальныхЗаписей ());

           ЭлементПриемник.УстановитьПредставлениеВыраженияИтоговыхЗаписей(ЭлементИсточник.ПолучитьПредставлениеВыраженияИтоговыхЗаписей ());

           
       КонецЕсли;

       
   КонецЦикла;

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

&НаСервере

Процедура ЗаполнитьЭлементы(ПриемникЗначения, ИсточникЗначения, ПервыйУровень = Неопределено)

   

   Если ТипЗнч(ПриемникЗначения) = Тип(«КоллекцияЗначенийПараметровКомпоновкиДанных») Тогда

       КоллекцияЗначений = ИсточникЗначения;

   Иначе

       КоллекцияЗначений = ИсточникЗначения.Элементы;

   КонецЕсли;

   
   Для каждого ЭлементИсточник Из КоллекцияЗначений Цикл

       

       Если ПервыйУровень = Неопределено Тогда

           ЭлементПриемник = ПриемникЗначения.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);

       Иначе

           ЭлементПриемник = ПервыйУровень.НайтиЗначениеПараметра(ЭлементИсточник.Параметр);

       КонецЕсли;

       

       Если ЭлементПриемник = Неопределено Тогда

           Продолжить;

       КонецЕсли;

       

       ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);

       Если ТипЗнч(ЭлементИсточник) = Тип(«ЗначениеПараметраКомпоновкиДанных») Тогда

           

           Если ЭлементИсточник.ЗначенияВложенныхПараметров.Количество() <> 0 Тогда

               ЗаполнитьЭлементы(ЭлементПриемник.ЗначенияВложенныхПараметров, ЭлементИсточник.ЗначенияВложенныхПараметров, ПриемникЗначения);

           КонецЕсли;

           
       КонецЕсли;

       
   КонецЦикла;

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

&НаСервере

// Процедура удаляет все элементы настройки компоновки данных из объекта

//

Процедура ОчиститьНастройкиКомпоновкиДанных(Настройки)

   

   Если Настройки = Неопределено Или ТипЗнч(Настройки) <> Тип(«НастройкиКомпоновкиДанных») Тогда

       Возврат;

   КонецЕсли;

   

   Для каждого Параметр Из Настройки.ПараметрыДанных.Элементы Цикл

       Параметр.Значение = Неопределено;

       Параметр.Использование = Ложь;

   КонецЦикла;

   

   Для каждого Параметр Из Настройки.ПараметрыВывода.Элементы Цикл

       Параметр.Использование = Ложь;

   КонецЦикла;

   

   Настройки.ПользовательскиеПоля.Элементы.Очистить();

   Настройки.Отбор.Элементы.Очистить();

   Настройки.Порядок.Элементы.Очистить();

   Настройки.Выбор.Элементы.Очистить();

   Настройки.Структура.Очистить();

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

&НаСервере

// Копирует настройки компоновки данных

//

Процедура СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник, НастройкиИсточник)

   

   Если НастройкиИсточник = Неопределено Тогда

       Возврат;

   КонецЕсли;

   
   Если ТипЗнч(НастройкиПриемник) = Тип(«НастройкиКомпоновкиДанных») Тогда

       
       Для каждого Параметр Из НастройкиИсточник.ПараметрыДанных.Элементы Цикл

           

           ЗначениеПараметра = НастройкиПриемник.ПараметрыДанных.НайтиЗначениеПараметра(Параметр.Параметр);

           Если ЗначениеПараметра <> Неопределено Тогда

               ЗаполнитьЗначенияСвойств(ЗначениеПараметра, Параметр);

           КонецЕсли;

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиВложенногоОбъектаКомпоновкиДанных») Тогда

       

       ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник);

       СкопироватьНастройкиКомпоновкиДанных(НастройкиПриемник.Настройки, НастройкиИсточник.Настройки);

       Возврат;

       
   КонецЕсли;

   

   // Копирование настроек

   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиКомпоновкиДанных») Тогда

       

       ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыДанных, НастройкиИсточник.ПараметрыДанных);

       СкопироватьЭлементы(НастройкиПриемник.ПользовательскиеПоля, НастройкиИсточник.ПользовательскиеПоля);

       СкопироватьЭлементы(НастройкиПриемник.Отбор,         НастройкиИсточник.Отбор);

       СкопироватьЭлементы(НастройкиПриемник.Порядок,       НастройкиИсточник.Порядок);

       
   КонецЕсли;

   

   Если ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаТаблицыКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаДиаграммыКомпоновкиДанных») Тогда

       

       СкопироватьЭлементы(НастройкиПриемник.ПоляГруппировки, НастройкиИсточник.ПоляГруппировки);

       СкопироватьЭлементы(НастройкиПриемник.Отбор,           НастройкиИсточник.Отбор);

       СкопироватьЭлементы(НастройкиПриемник.Порядок,         НастройкиИсточник.Порядок);

       ЗаполнитьЗначенияСвойств(НастройкиПриемник, НастройкиИсточник);

       
   КонецЕсли;

   

   СкопироватьЭлементы(НастройкиПриемник.Выбор,              НастройкиИсточник.Выбор);

   СкопироватьЭлементы(НастройкиПриемник.УсловноеОформление, НастройкиИсточник.УсловноеОформление);

   ЗаполнитьЭлементы(НастройкиПриемник.ПараметрыВывода,      НастройкиИсточник.ПараметрыВывода);

   

   // Копирование структуры

   Если ТипЗнч(НастройкиИсточник) = Тип(«НастройкиКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить(ТипЗнч(ЭлементСтруктурыИсточник));

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   

   Если ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаТаблицыКомпоновкиДанных»)

    Или ТипЗнч(НастройкиИсточник) = Тип(«ГруппировкаДиаграммыКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Структура Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Структура.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«ТаблицаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Строки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Строки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Колонки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Колонки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

   
   Если ТипЗнч(НастройкиИсточник) = Тип(«ДиаграммаКомпоновкиДанных») Тогда

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Серии Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Серии.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
       Для каждого ЭлементСтруктурыИсточник Из НастройкиИсточник.Точки Цикл

           

           ЭлементСтруктурыПриемник = НастройкиПриемник.Точки.Добавить();

           СкопироватьНастройкиКомпоновкиДанных(ЭлементСтруктурыПриемник, ЭлементСтруктурыИсточник);

           
       КонецЦикла;

       
   КонецЕсли;

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

&НаСервере

//Сохраняет настройки схемы компоновки

//

Процедура СохранитьНастройки()

   КомпоновщикНастроек.Восстановить();

   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   НастройкиСКД          = СКД.НастройкиПоУмолчанию;

   НастройкиКомпоновщика = КомпоновщикНастроек.ПолучитьНастройки();

   ОчиститьНастройкиКомпоновкиДанных(НастройкиСКД);

   СкопироватьНастройкиКомпоновкиДанных(НастройкиСКД, НастройкиКомпоновщика);

   АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);

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

////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ — ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   
   //crack start crack end// CRM_ЗащитаСервер.ПолучитьЗащищеннуюОбработку().ПриСозданиеНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

   
   АдресСКД = Параметры.АдресСКД;

   
   СКД = ПолучитьИзВременногоХранилища(АдресСКД);

   Если СКД <> Неопределено Тогда

       КомпоновщикНастроек.Инициализировать(

           Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД)

           );

       КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

       КомпоновщикНастроек.Восстановить();

   КонецЕсли;

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

////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ — ОБРАБОТЧИКИ СОБЫТИЙ ОСТАЛЬНЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ФОРМЫ

&НаКлиенте

Процедура ЗавершитьРедактирование(Команда)

   СохранитьНастройки();

   

   СтруктураВозврата = Новый Структура;

   СтруктураВозврата.Вставить(«АдресСКД», АдресСКД);

   
   Закрыть(СтруктураВозврата);

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

И приоткрытии закрытии тоже нет.

  

alxxsssar

94 — 02.02.12 — 14:18

вот и заполняй, там скорее всего диалог выбора файла

  

Лис Локи

95 — 02.02.12 — 14:21

отсылаю к (84) полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме

Нет, там не пусто. Там вообще какая-то левая форма с двумя memo-подобными полями и одной кнопочкой ОКэй.

  

alxxsssar

96 — 02.02.12 — 14:22

можешь обработку на почту прислать?

  

Лис Локи

97 — 02.02.12 — 14:25

С удовольствием, скажи только как.

  

Лис Локи

98 — 02.02.12 — 14:25

Без проблем, скажи только как.

  

extrim-style

99 — 02.02.12 — 14:26

(95) ну вот же присвоение — АдресСКД = Параметры.АдресСКД;

Поставь там точку и запусти обработку в пользовательском режиме, как написано в (5), и по Shift+F9 посмотри содержание Параметры.АдресСКД или Параметры вообще.

  

alxxsssar

100 — 02.02.12 — 14:28

в конфигураторе плавой клавишей на обработкук -> сохранить как внешнюю обработку, отчет, выбираешь место и вуаля. отошли на alxxsssar@mail.ru

Данная ошибка возникает при попытке подключения обработчика ожидания с некорректным именем процедуры.

Такая оплошность может произойти, если не выполняется одно из условий:

  • процедуры с таким именем нет в модуле приложения, глобальном общем модуле или в модуле формы;
    • глобальный общий модуль отсутствует на клиенте (не установлены флаги «Клиент», «Клиент (упр приложение)» иили «Клиент (обычное приложение)»);
    • в управляемом приложении процедура объявлена без директивы &НаКлиенте
  • процедура содержит формальные параметры (их быть не должно)
  • процедура объявлена без обязательного ключевого слова Экспорт (в модуле формы допускается не использовать)
//фрагмент модуля управляемой формы:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    //вызовем обработчик сразу после открытия формы
    ПодключитьОбработчикОжидания("ОбработчикФормы", 3);
    
КонецПроцедуры
//указана директива для модуля управляемой формы:
&НаКлиенте
Процедура ОбработчикФормы()//нет формальных параметров
    
    Сообщить(ТекущаяДата());
    
КонецПроцедуры

Внимательно ознакомьтесь с описанием процедуры ПодключитьОбработчикОжидания(), чтобы не допускать подобных ошибок вновь

Ошибка при обновлении 1С 8 КА 2 с подредакции 2.5.8 на 2.5.9: Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции). {РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(41)}:ЗаполнитьСловарьСопоставленияН

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

Найденные решения:

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

1C 8 при обновлении проблемы с обработчиками, не все процедуры удалось выполнить
Рис. 1. Частный пример «проблемы с обработчиками», «не все процедуры удалось выполнить».

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

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

В соответствии с рекомендацией — переходим по ссылке «Не все процедуры удалось выполнить» открываем форму списка «Дополнительные процедуры обработки данных». Находим копку «Запустить» и ожидаем.

Нажатие на изображении увеличит его
1С 8 ошибка, как исправить, решить, руководство, не все процедуры удалось выполнить
Рис. 3.  Форма списка «Дополнительные процедуры обработки данных» при обновлении в 1С 8

Если ошибка при дополнительной обработке носит не технический характер, то, возможно, что такой запуск избавит от ее. Но в обсуждаемом примере ошибка носила именно технический характер. И хоть сколько запускай — результат будет один и тот же. В частности, проблема была в участке кода:

Подробный текст ошибки:

Процедура «РегистрыСведений.СловарьСопоставленияНоменклатурыБЭД.ОбработатьДанныеДляПереходаНаНовуюВерсию» обработки данных завершилась с ошибкой:

Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)

Технические подробности:
Ошибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента с идентификатором 10be6416-8958-4124-b61f-023b79cfb16f по причине
Ошибка при вызове метода контекста (ВыгрузитьКолонку)
{РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(246)}:Порция = ОбновляемыеДанные.ВыгрузитьКолонку(«СсылкаНаОбъект»);
{РегистрСведений.СловарьСопоставленияНоменклатурыБЭД.МодульМенеджера(41)}:ЗаполнитьСловарьСопоставленияНоменклатурыБЭД(Параметры);
{(1)}:РегистрыСведений.СловарьСопоставленияНоменклатурыБЭД.ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры[0])

Нажатие на изображении увеличит его
1С 8 ошибка при обновлении базы, при выполнении дополнительных процедур
Рис. 4. Ошибка при обновлении базы «Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)».

Так как разрешить подобные «проблемы с обработчиками обновления данных» при обновлении баз 1С 8? Такая ошибка может поджидать не только в данном примере. Можно рассматривать два варианта — первый сразу пробовать исправлять код разработчиков, чтобы обработчик отработал после исправления. Второй — попробовать изменить порядок обновления. Еще раз отметим, что в данном примере выполнялось обновление с подредакции Комплексной автоматизации 2.5.8 на подредакцию 2.5.9, а значит, возможно может быть и в других конфигурациях, «построенных» на БСП (Библиотека стандартных подсистем), таких, как Управление торговлей ред. 11, ERP 2. И, скорее всего, переход с релиза …5.8.287 на релиз …5.9.119 во всех этих конфигурациях может сопровождаться такой ошибкой.

Итак, если имеется архив базы, созданный перед началом обновления, то можно попробовать другую комбинацию, другой порядок обновляемых релизов, предварительно восстановив базу. В данном же примере было еще выполнено обновление до релиза 2.5.8.303, потом обновление до подредакции 2.5.9.125. И при обновлении, при выполнении дополнительных процедур обработки данных все прошло без проблем и ошибок. Т.е. ошибка, которая содержалась, скорее всего, в коде релиза 5.9.119, была устранена в релизе 5.9.125. Можно, конечно, проверить по истории регистрации и исправления ошибок на сайте 1С. Но на это не было времени. И выбранный подход в обходе проблемы помог.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

05-12-2022

Журавлев А.С.
(Сайт azhur-c.ru)

0 / 0 / 0

Регистрация: 09.04.2021

Сообщений: 4

1

1C 8.x

13.04.2021, 22:17. Показов 10986. Ответов 4


Помогите пожалуйста

1C
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
77
78
79
80
81
82
&НаКлиенте
Процедура ДатаВыездаПриИзменении(Элемент)
    Объект.КолДнейПроживания = (Объект.ДатаВыезда - Объект.ДатаЗаезда) / (24*60*60) + 1// Вставить содержимое обработчика.
КонецПроцедуры
 
&НаКлиенте
Процедура КомнатаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    Элемент.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокСвободныхНомеров());
    
КонецПроцедуры
 
&НаСервере
Функция ПолучитьСписокСвободныхНомеров()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
        |   Номер.Ссылка КАК Ссылка
        |ПОМЕСТИТЬ втНомера
        |ИЗ
        |   Справочник.Номер КАК Номер
        |ГДЕ
        |   НЕ Номер.ПометкаУдаления
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |   тбНомер.Ссылка КАК Номер,
        |   ЕСТЬNULL(СвободныеМестаОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, 
        |   &ДатаЗаезда как Дата
        |ПОМЕСТИТЬ вт
        |ИЗ
        |   втНомера КАК тбНомер
        |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеМеста.Остатки(&ДатаЗаезда, ) КАК СвободныеМестаОстатки
        |       ПО тбНомер.Ссылка = СвободныеМестаОстатки.Номер
        |";
    Запрос.УстановитьПараметр("ДатаЗаезда",Объект.ДатаЗаезда);
    
    тДата = Объект.ДатаЗаезда + 43200; нм = 1;
    Пока тДата<Объект.ДатаВыезда Цикл 
        
        Запрос.Текст = Запрос.Текст +
            "
            |ОБЪЕДИНИТЬ ВСЕ
            |
            |ВЫБРАТЬ
            |   тбНомер.Ссылка,
            |   ЕСТЬNULL(СвободныеМестаОстатки.КоличествоОстаток, 0),
            |   &Дата"+Формат(нм,"ЧГ=")+"
            |ИЗ
            |   втНомера КАК тбНомер
            |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеМеста.Остатки(&Дата"+Формат(нм,"ЧГ=")+", ) КАК СвободныеМестаОстатки
            |       ПО тбНомер.Ссылка = СвободныеМестаОстатки.Номер
            |";
        Запрос.УстановитьПараметр("Дата"+Формат(нм,"ЧГ="),тДата);
        тДата = тДата + 43200; нм = нм + 1;
    КонецЦикла;
    
    Запрос.Текст = Запрос.Текст + 
        "
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |   тбНомер.Ссылка,
        |   ЕСТЬNULL(СвободныеМестаОстатки.КоличествоОстаток, 0), &ДатаВыезда
        |ИЗ
        |   втНомера КАК тбНомер
        |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеМеста.Остатки(&ДатаВыезда, ) КАК СвободныеМестаОстатки
        |       ПО тбНомер.Ссылка = СвободныеМестаОстатки.Номер
        |
        |";
    
    Запрос.УстановитьПараметр("ДатаВыезда",Объект.ДатаВыезда);
 
    Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номер");
    
КонецФункции
 
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.Комната.СписокВыбора.Добавить(Объект.Комната);
КонецПроцедуры

Изначально все работало, потом что-то произошло и выдает ошибку:
{Документ.Размещение.Форма.ФормаДокумента.Форма(75 )}: Ошибка при вызове метода контекста (ВыгрузитьКолонку)
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(«Н омер»);
по причине:
Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)
Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)

Не понимаю как исправить

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение: Недопустимое значение параметра (параметр номер ‘1’) Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты Служебные сообщения: {Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)    СКД = ПолучитьИзВременногоХранилища(АдресСКД);     Недопустимое значение параметра (параметр номер ‘1’) Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

Здравствуйте. При настройке 1С «Предприятие» возникла следующая проблема: при попытке «Обмена данными» (Обмен даннымиВыгрузка счетов на оплатуЗагрузка взаиморасчетов с клиентам) появляется вот такое сообщение: Недопустимое значение параметра (параметр номер ‘1’) Процедура СформироватьТекстЗапросаИПолучитьЗагруженныеОбороты Служебные сообщения: {Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)    СКД = ПолучитьИзВременногоХранилища(АдресСКД);     Недопустимое значение параметра (параметр номер ‘1’) Прошу, помогите как можно скорее. Сам я в 1С лишь скромный эникейщик.

Ну, на этот кусок. В общем курсор он там останавливает.

Я тебе сказал почему ошибка. А почему АдресСКД  не строка это только отлажчиком на месте определишь.

О, понял. Мда, глупо получилось. Как это поглядеть примерно?

На строке «СКД = ПолучитьИзВременногоХранилища(АдресСКД)» в конфигураторе, делаешь точку останова (F9 и «красная» точка). Потом в предприятии запускаешь. Когда доходит до этого места происходит переключение в конфигуратор на точку останова. Выделяешь «АдресСКД» и нажимаешь Shift+F9. В результате видишь табло, где все показано. Анализируешь, поправляешь и пытаешь снова, пока не исправишь.

Результат: Свойство АдресСКД Значение «» Тип Строка Шарады какие-то.

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

Слава богу, «» — не является очередным извращением языка, а то я уже испугался. Ок, как посмотреть, где оно задается? (код не мой, естественно).

Вот в коде и смотри, где ей присваивается значение

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

Может быть это реквизит обработки?

Т.е.? Вообще, связанная с СКД в коде выше только эта процедура: Процедура УстановитьПоляОтбораПоСКД(СКД)

В обработке на закладке Данные есть АдресСКД или нет?

Среди реквизитов то есть?

В «Обработке», которая в окне «Конфигурация» — вроде нет.

Т.е. хочешь сказать: Обработки -> «Твоя обработка» -> реквизиты — пусто? Значит надо добавлять реквизит, который надо заполнять.

Собственно да, предугадал вопрос.

А может это реквизит формы?

Исходишь из логики: для чего нужна обработка? Что нужно получить для построения отчета? Пытаешься понять для чего нужен этот «АдресСКД»?

-> Верно построенное предположение. +1

Да вроде и там (Общиеобщие формы) ничего такого не наблюдается. Мда. Отчет-обработка. > для чего нужен этот «АдресСКД»? Понятия не имею, честно говоря. Я имею ввиду, я даже не предполагаю, как он ДОЛЖЕН выглядеть.

Отчет готовый есть? Что он должен формировать? Неужели не знаешь?

По идее это должен был быть импорт взаиморасчетов с клиентами. (Ведомость и остатки). Есть пример, да.

Уже не так все плохо. Копай дальше. )

А глобальный поиск по конфе твоего «АдресСКД» делал?

>А глобальный поиск по конфе твоего «АдресСКД» делал? Нет, конечно, ибо 1С изучал «давно и не правда». Как?

)) Иконку «Папка с биноклем» видишь? Если — да, то это «Глобальный поиск».

«Есть папка с увеличительным стеклом», жмакнул, вот что нашло: Поиск строки «АдресСКД»… Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(154, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1095, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1139, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1148, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1175, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 21) : Новый Структура(«АдресСКД»,АдресСКД)); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1274, 31) : Новый Структура(«АдресСКД»,АдресСКД)); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(270, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(277, 2) : АдресСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 2) : АдресСКД = Параметры.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(290, 23) : АдресСКД = Параметры.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(292, 38) : СКД = ПолучитьИзВременногоХранилища(АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(296, 52) : Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД) Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 30) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД); Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаНастройки.Форма.Модуль(313, 41) : СтруктураВозврата.Вставить(«АдресСКД», АдресСКД); Найдено вхождений: 17

Лениво анализировать то, что ты тут постишь. Самому очень тяжело?

Ну вот же: Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 3) : АдресСКД = Результат.АдресСКД; Основная конфигурация Обработка.CRM_ОбменДаннымиС1СБухгалтерия.Форма.ФормаРаспределения.Форма.Модуль(1277, 24) : АдресСКД = Результат.АдресСКД; Вот и смотри там, как этот АдресСКД получается, и для чего нужен :)))

Проблема в том, что для меня это в основном китайские иероглифы. Точнее русские, но от этого только грустнее. Ок, посмотрим-с.

Тогда может тебе стоит забить на это, и позвать уже специалиста? :))))

Цитируя мою начальницу «Я всё равно бы тыкалась по интернету, как и ты, а так хотя бы время свободное будет». Собственно, сам-то я не сильно пряморукий писатель сайтов, но лучше у них просто нет.

>Если Результат <> Неопределено Тогда Это вообще норма?

Если адрес хранилища, то скорее всего это путь к файлам. Посмотри на форме обработки нет ли реквизита с выбором файла или чего подобного?

Хм, кажется в общих формах формы «CRM_ОбменДаннымиС1СБухгалтерия» просто нет.

Где-то должен быть такой реквизит.

это не в общих формах — это в обработках

Ага, нашел. Нет, у неё только реквизиты НачалоПериода, КонецПериода, УниверсальныйОбменДанными, ИмяФайлаОбмена, ДатаВыгрузкиДанных.

есть реквизиты обработки, которую ты открываешь, а есть реквизиты формы — открываешь в этой обработке ФормуНастройки и переходишь на вкладку реквизиты.

интересно, какого характера была «настройка». Может проще оттуда топать?

Между объектом и компоновщиком настроек, тип «Строка».

И куда дальше тыкаться, добрые люди?

Все ушли на обед. Я тоже скоро ухожу. )

в в реквизитах формы есть АдресСКД?

Да, есть! offtop: Что ли самому потом пойти?

открой модуль этой формы. Встань в самое начало и по Ctrl+F поищи АдресСКД. Место, где АдресСКД присваивается значение — «АдресСКД = …»

в пользовательской открой и посмотри, он заполнен?

> открой модуль этой формы Как, добрая душа?

>открой модуль этой формы Ага, нашел, затупил, простите.

поставь точку останова на этой строчке и посмотри заполнение параметра СКД.

> поставь точку останова на этой строчке *тык F9* done! >посмотри заполнение параметра СКД Эм, поясни пожалуйста.

Что-то ни фига не происходит, оно просто выдаёт ошибку и продолжает работать дальше. (т.е. форма не вызывается, но и вылета нет). И табло не вызывается по шифт+f9 теперь.

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

> Если ни то, ни другое — курить, почему не заходит в эту процедуру. А возможно ли это закомментить и написать свое, аналогичное? Я имею ввиду, насколько там большая простыня должна быть?

прежде чем что-то писать, нужно знать что писать. лучше вспомнить, что в настраивали

По идее — форму для «Загрузки взаиморасчетов с клиентам».

Если больше присвоения АдресСКД в форме нет, то тогда в смотри присвоение СКД, т.к. скорей всего что-то не присваивается. В какой процедуре находится?

находится в «Сохранить настройки»:

по Ctrl+F сделай поиск в модуле СохранитьНастройки — посмотри, в каких процедурах/функциях вызывается.

В пользовательском режиме открой обработку Обработка.CRM_ОбменДаннымиС1СБухгалтерия (называется как в поле Синоним), посмотри, может что прояснится, какие-то параметры не установлены может.

>В пользовательском режиме Т.е. не из конструктора?

просто 1с предприятие открой, открой эту обработку, найди какую-нибудь закладку, кнопку или что-нибудь с надписью «Настройки» и посмотри что там у тебя заполнено

Так, нашел кнопку с надписью «настройки». Большую такую. И там до фига, но ничего про СКД что-то нема. А сама обработка же не запускается, даже форма не появляется, тупо «Недопустимое значение параметра (параметр номер ‘1’) «.

Кстати, господа, через 2 часа мой раочий день кончается, но завтра цирк продолжится.

попробуй покурить правильное заполнение и сохранение настроек этой обработки

В этом проблема. Я по этой 1С CRM Стандарт мануалов вообще не нашел в инете. Может я что-то не так ищу? Или не знаю правильного названия?

а, ну теперь понятно, откуда «настройка» из пошла =)

Так объясните мне пожалуйста, в чем развязка этого детектива с 1С?)

так может на форме она имеет другое название. посмотри что-нибудь похожее или выложи ссыль на скан формы

+ или в конфигураторе полазай по полям формы настроек и через их свойства (ПКМ) смотри имя реквизита

И если что-то такое найду, что на что исправить?

если он в пользовательской пустой, то заполни. что вводить — уж извини, тебе лучше знать

Так, в пользовательской я его не нашел. В реквизитах: Имя: АдресСКД Основной реквизит — не выбрано. Сохраняемые данные — не выбрано. Функциональных опций — нет. Проверка заполнения — не проверять.

в только пересохранение настроек. Должно быть где-то еще присвоение АдресСКД. Посмотри в процедурах ПриОткрытии и ПередОткрытием, и еще, кроме модуля формы, есть модуль объекта. ПКМ на обработку в дереве метаданных — открыть модуль объекта — там поищи присвоение АдресСКД.

Обработке я выбрал «Обмен данными 1С и т.п.», правой клавишей, модуль объекта — и девственно чистый лист распахнул свои объятья. Видимо опять не туда. >процедурах ПриОткрытии и ПередОткрытием А они-то где, добрый человек?

вот в этой пусто? — Обработка.CRM_ОбменДаннымиС1СБухгалтерия? ПриОткрытии и ПередОткрытием в модуле формы, но может и не быть.

отсылаю к полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме.

И приоткрытии закрытии тоже нет.

вот и заполняй, там скорее всего диалог выбора файла

отсылаю к полазай по самой форме настроек, по свойствам всех полей найди эту долбаную «АдресСРМ» и глянь, какая надпись около него стоит на форме Нет, там не пусто. Там вообще какая-то левая форма с двумя memo-подобными полями и одной кнопочкой ОКэй.

можешь обработку на почту прислать?

С удовольствием, скажи только как.

Без проблем, скажи только как.

NyanXiho

0 / 0 / 0

Регистрация: 12.03.2022

Сообщений: 2

1

Ошибка при создании конструктора структуры

12.03.2022, 16:30. Показов 584. Ответов 1

Метки c++ (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день, при создании конструктора структуры у меня появляется ошибка
No matching constructor for initialization of ‘sessionResult’
Насколько я понимаю, не правильно создается конструктор из-за того, что одно из полей структуры так же структура.
Кто-нибудь сталкивался с подобной проблемой? Что тут можно сделать?
Спасибо.

C++
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
struct Marks
{
    int exellent;
    int good;
    int satisfactory;
    int fail;
};
 
struct sessionResult{
public:
    int numbGroup;
    int numbStudents;
    Marks numMarks;
 
    sessionResult(int group, int students, Marks marks){
        numbGroup = group;
        numbStudents = students;
        numMarks = marks;
    }
 
};
 
int main()
{
    sessionResult a(15, 28,4, 2, 1,6);
    return 0;
}



0



Nishen

1174 / 835 / 359

Регистрация: 26.02.2015

Сообщений: 3,743

12.03.2022, 16:45

2

Лучший ответ Сообщение было отмечено NyanXiho как решение

Решение

C++
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
struct Marks
{
    int exellent;
    int good;
    int satisfactory;
    int fail;
};
 
struct sessionResult {
public:
    int numbGroup;
    int numbStudents;
    Marks numMarks;
 
    sessionResult(int group, int students, Marks marks) {
        numbGroup = group;
        numbStudents = students;
        numMarks = marks;
    }
 
};
 
int main()
{
    sessionResult a(15, 28, { 4, 2, 1, 6 });
    return 0;
}



1



Ошибка «Задано неправильное имя атрибута структуры»

Ошибка возникает при попытке добавления элемента в структуру с некорректным идентификатором.

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

Вероятно, в строку идентификатора попал недопустимый символ: точка (.), тире (-) и т.п. Проверьте значение идентификатора в отладчике, либо используя метод Сообщить()

Задано неправильное имя атрибута структуры при проведении документа.

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

  • Скопировать ссылку
  • Перейти

то ошибка будет всегда , при попытке обратится к недобавленному свойству?

Может я не прав?

  • Скопировать ссылку
  • Перейти

к ошибке не приводит
а этот

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(5) А раньше могло работать если выполнялось только это

А сейчсас ушло в ИНАЧЕ
А там пустая структура без единого ключа ПредДанные
И ясно что выскакивает ошибка при попытке обратиться к несуществующим ключам структуры

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Вы сами писали этот код?
Что-то мне подсказывает что нет, раз вы не видите вот этого

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(17) Вы поставить точку остановки и посмотрите какое значение передается в переменной Назв. Скорее всего у вас или не определено или наименование, например с тире или другим каким то не допустимым символов

Вот тут отладку сделаейте
: Ошибка при вызове метода контекста (Свойство)
Если ПредДанные.Свойство(Назв) Тогда
по причине:
Задано неправильное имя атрибута структуры
Задано неправильное имя атрибута структуры

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Погорячился насчет совсем.
В отладке посмотрите что в этой строке имеете в Назв

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

Дорогие читатели Мир Доступа! Вместе — мы сила! Вместе — мы легион! Если каждый из Нас переведет хотя бы один рубль мы сможем оплатить услуги корректора и хостинг на год вперед! Мы также сможем поднять зарплату нашим постоянным авторам и эффективнее поощрять их работу! Мы высоко ценим труд наших авторов!

Мы хотим радовать Вас и дальше! Благодаря Вам наш проект продолжает оставаться независимым и полезным. Без Ваших пожертвований мы бы никогда не справились. Спасибо Вам и низкий поклон!

С Уважением, главный редактор Мир Доступа

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

В соответствии с описанием по методу «Структура — Insert ()»,идентификатор должен включать в себя в своё уникальное содержание, допускается наличие исключительно букв/цифр/подчеркивания.

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

Вполне возможно, что строка имеет недопустимые символы, тогда стоит их найти самостоятельно либо при помощи инструмента «Report ()» (Сообщить). Скорее всего проблема задано неправильное имя атрибута структуры будет решена.

Приведем пример ключа с применением метода «Insert ()»:

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

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

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

Ошибка задано неправильное имя атрибута структуры 1с 8.3: полезные советы

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

Поэтому, в первую очередь, прежде чем углубляться в полную отладку, необходимо перейти на версию 3.1.10 и только после неё попробовать перейти на новую сборку.

Ошибки 1с 8.3 — неправильное имя атрибута

Ошибки в правилах действительно могут возникнуть — дело в том, что оболочка находилась в ZUP старых версий, а после на 3.1.10 никаких ошибок и нареканий не поступало.

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

В некоторых случаях можно перенести другую (даже постороннюю) базу данных в ZUP, к примеру — до версии 3.1.71.77. Сообщение задано неправильное имя атрибута структуры 1с 8.3 в этих случаях также может возникнуть.

Следует помнить, что в заголовках и тексте символы не допускаются. Примечание: всегда решаем задачу с учётом специфики программы. Например — требуется вставить 1/4 ставки. В этом случае необходимо написать строчными буквами «ЧЕТВЕРТЬ СТАВКИ»

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

Что-то сломалось или не работает? Расскажите нам о своей проблеме с ТВ, смартфоном, приложением или другим устройством и мы решим её — пишите свой вопрос в комментариях к этой статье, либо — на электронную почту capatob.homep@gmail.com — мы обязательно ответим на Ваш вопрос и решим его в течении одной недели. Для наших постоянных читателей скоро будем проводить блиц с необычными призами — следите за сайтом каждый день.

Понравилась статья? Поддержите наш IT-журнал любым удобным способом! Пока что мы держимся на чистом энтузиазме, но зато не делаем заказных обзоров 🙂

I tried to call a structure’s constructor from a class constructor but its throwing an error. I have been trying to solve this for 30 mins

Structure:

struct node
{
    int val;
    node* left;
    node* right;
    node(int x)
    {
        val = x;
        left = NULL;
        right = NULL;
    }

    ~node()
    {
        delete(left);
        delete(right);
    }
};

class:

class Tree
{
    node* head;
    node list[1000];
    bool flag[1000] = {0};
public:
    Tree(int x)
    {
        head = new node(x);
    }

main() method:

int main()
{
    int a[] = {50,35,75,20,45,60,90,10,25,40,47,65,80,120,1,15,23,30,39,
46,49,82,110,21,24,48};
    Tree t(a[0]);

the error I am getting is

Error Log:

In constructor 'Tree::Tree(int)':|
|37|error: no matching function for call to 'node::node()'|
|37|note: candidates are:|
|17|note: node::node(int)|
|17|note:   candidate expects 1 argument, 0 provided|
|12|note: node::node(const node&)|
|12|note:   candidate expects 1 argument, 0 provided|

the structure constructor has one argument and in the class constructor I am calling with one argument yet the the error is throwing that the program call with 0 argument. I don’t know where the problem is.

Thanks.

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Ошибка при вызове конструктора сомобъект 2147221005 0x800401f3
  • Ошибка при вызове конструктора comобъект 2147467262
  • Ошибка при вызове конструктора сертификаткриптографии
  • Ошибка при вызове конструктора comобъект 2147221005 0x800401f3

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии