|
Конвертация | ☑ | ||
---|---|---|---|---|
0
Aleksei_Pro
22.06.13
✎
16:15
|
Ребят подскажите, мне нужно при загрузке в базу проверять на наличие записей, если их больше 2 то тогда делать отказ от загрузке:
В обработчике: ПередЗагрузкойОбъекта пишу: Запрос = Новый Запрос; Запрос.УстановитьПараметр("Наименование",Объект.Наименование); Запрос.УстановитьПараметр("МойРеквизит",Объект.МойРеквизит); Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.МойРеквизит = &МойРеквизит | И Номенклатура.Наименование = &Наименование"; ТЗ = Новый ТаблицаЗначений; ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() > = 2 Тогда Отказ = истина; КонецЕсли; Почему выдает ошибку на данный модуль? |
|||
1
Wobland
22.06.13
✎
16:18
|
всё сказано в ошибке, юный падаван
|
|||
2
Wobland
22.06.13
✎
16:18
|
ах, да. выдаёт ошибку потому, что она случается. вот такое вот поведение платформы
|
|||
3
Aleksei_Pro
22.06.13
✎
16:23
|
Начало загрузки: 22.06.2013 16:11:18
Ошибка в глобальном обработчике события ПередЗагрузкойОбъекта (конвертация) ИмяПКО = Номенклатура ТипОбъекта = Номенклатура Обработчик = ПередЗагрузкойОбъекта (глобальный) ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(14,23)}: Ошибка в выражении ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7021) КодСообщения = 53 Окончание загрузки: 22.06.2013 16:11:18 Загружено объектов: 0 |
|||
4
Wobland
22.06.13
✎
16:25
|
> Ошибка компиляции при вычислении выражения
всякую херню написал, теперь взрослые нужны? |
|||
5
Aleksei_Pro
22.06.13
✎
16:25
|
ясно....спс..прогляд
|
|||
6
Aleksei_Pro
22.06.13
✎
16:26
|
где тут херня , ну знаки перепутал..
|
|||
7
Wobland
22.06.13
✎
16:26
|
(6) перепутал знаки - сотворил херню. ну как ребёнок, чессвлово
|
|||
8
AlexNew
22.06.13
✎
16:27
|
Опять отладчик отобрали? Опять через Мисту быстрее?
|
|||
9
Aleksei_Pro
22.06.13
✎
16:28
|
Не ему на знаки наплевать , тут не в этом дело...
|
|||
10
Wobland
22.06.13
✎
16:30
|
(9) ну не в этом, так не в этом. на здоровье
|
|||
11
ЧашкаЧая
22.06.13
✎
16:43
|
Во-первых, почему в глобальныый загрузчик? Этот код будет выполняться перед загрузкой любого объекта. Во вторых в ПередЗагрузкой нет еще переменной Объект, RTFM! Код нужно запихать в ПоляПоиска, поставить флажки поиска по Наименование, МойРеквизит и юзать СвойстваПоиска. Давай по новой, так работать не будет.
|
|||
12
Aleksei_Pro
22.06.13
✎
16:51
|
(11) это уже сделано!
СтрокаИменСвойствПоиска = "Наименование, МойРеквизит"; Просто мне нужно при загрузке если по таким параментрам найдено 2 позиции чтоб не замещал или не загружал! Попробовал при загрузке сделано , но он замещается все равно: Если ОбъектНайден = Истина Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("Наименование",Объект.Наименование); Запрос.УстановитьПараметр("ЭКСПЕРТ_Цена",Объект.МойРеквизит); Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.МойРеквизит = &МойРеквизит | И Номенклатура.Наименование = &Наименование"; ТЗ = Новый ТаблицаЗначений; ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() >= 2 Тогда Сообщить("Невозможно загрузить данную номенклатуру - " + Строка(Объект) + " по причине наличия дублирующих записей "); НеЗамещатьОбъект = истина; КонецЕсли; КонецЕсли; |
|||
13
Aleksei_Pro
22.06.13
✎
16:52
|
(12) + Запрос.УстановитьПараметр("МойРеквизит",Объект.МойРеквизит);
|
|||
14
ЧашкаЧая
22.06.13
✎
17:03
|
ОбъектМодифицирован = Ложь;
|
|||
15
Aleksei_Pro
22.06.13
✎
17:03
|
НеЗамещатьОбъект = истина;
- я же установил почему замещает , сообщения выдает! |
|||
16
ЧашкаЧая
22.06.13
✎
17:05
|
(15) Потому что читать нужно доки.
|
|||
17
Aleksei_Pro
22.06.13
✎
17:06
|
(14) тоже не помогает!
|
|||
18
Aleksei_Pro
22.06.13
✎
17:07
|
Если ОбъектНайден = Истина ТОгда
Запрос = Новый Запрос; Запрос.УстановитьПараметр("Наименование",Объект.Наименование); Запрос.УстановитьПараметр("МойРеквизит",Объект.МойРеквизит); Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.МойРеквизит = &МойРеквизит | И Номенклатура.Наименование = &Наименование"; ТЗ = Новый ТаблицаЗначений; ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() >= 2 Тогда Сообщить("Невозможно загрузить данную номенклатуру - " + Строка(Объект) + " по причине наличия дублирующих записей "); НеЗамещатьОбъект = истина; ОбъектМодифицирован = Ложь; КонецЕсли; КонецЕсли; |
|||
19
vicof
22.06.13
✎
17:14
|
Отказ = Истина;
|
|||
20
vicof
22.06.13
✎
17:15
|
в после загрузки
|
|||
21
Aleksei_Pro
22.06.13
✎
17:15
|
Ладно не буду мудрить сделал по другому , извините если что!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |