|
v8: Ошибка : Проверка мутабельных значений на заполнение не поддерживается | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
21.08.12
✎
12:37
|
Если НЕ ЗначениеЗаполнено(Строка0.Регистратор) Тогда
ТаблицаСписания.ЗаполнитьЗначения(ОбрабатываемыйДокумент,"Регистратор"); КонецЕсли; Если провожу ОтчетОРозничныхПродажах то Строка0.Регистратор Отчет о розничных продажах ADMPRT00536 від 21.08.2012 09:54:09 ДокументСсылка.ОтчетОРозничныхПродажах И все ок , но если ПередачаМалоценкиВЭксплуатацию Строка0.Регистратор Передача малоценки в эксплуатацию ADMPRT00001 від 21.08.2012 11:35:09 ДокументСсылка.ПередачаМалоценкиВЭксплуатацию то тут ругается на ЗначениеЗаполнено и пишет что Проверка мутубельных значений на заполнение не поддерживается. В чем дело? |
|||
1
Ненавижу 1С
гуру
21.08.12
✎
12:39
|
а не объект ли там?
|
|||
2
Boudybuilder
21.08.12
✎
12:42
|
(1) ???
|
|||
3
Ненавижу 1С
гуру
21.08.12
✎
12:43
|
(2) я говорю - узнай тип твоего Строка0.Регистратор
|
|||
4
ZanderZ
21.08.12
✎
12:44
|
(1) ну судя по теме там ДокументСсылка.ПередачаМалоценкиВЭксплуатацию
|
|||
5
Ненавижу 1С
гуру
21.08.12
✎
12:45
|
(4) а может и нет
|
|||
6
Sereja
21.08.12
✎
12:55
|
(0) тебе нужно функцию пользовать типа такую:
Функция обПустоеЗначение(Значение) Экспорт ТипЗначения = ТипЗнч(Значение); // Сначала примитивные типы Если Значение = Неопределено Тогда Возврат Истина; ИначеЕсли Значение = NULL Тогда Возврат Истина; ИначеЕсли Лев(Нрег(Строка(Значение)),18) = "<объект не найден>" Тогда Возврат Истина; ИначеЕсли ТипЗначения = Тип("Тип") Тогда Возврат Истина; ИначеЕсли ТипЗначения = Тип("Строка") Тогда Возврат ПустаяСтрока(Значение); ИначеЕсли ТипЗначения = Тип("Число") Тогда Возврат ?(Значение = 0,Истина,Ложь); ИначеЕсли ТипЗначения = Тип("Дата") Тогда Возврат ?(Значение = Дата('00010101'),Истина,Ложь); ИначеЕсли ТипЗначения = Тип("Булево") Тогда Возврат Ложь; // Булево будем считать не пустым всегда ИначеЕсли ТипЗначения = Тип("Граница") Тогда Возврат обПустоеЗначение(Значение.Значение); ИначеЕсли ТипЗначения = Тип("Массив") ИЛИ ТипЗначения = Тип("СписокЗначений") ИЛИ ТипЗначения = Тип("ТаблицаЗначений") ИЛИ ТипЗначения = Тип("Структура") Тогда Возврат ?(Значение.Количество() = 0,Истина, Ложь); ИначеЕсли ТипЗначения = Тип("ЭлементСпискаЗначений") Тогда Возврат Ложь; ИначеЕсли ТипЗначения = Тип("Форма") Тогда Возврат Ложь; Иначе Возврат ?(Значение = Новый(ТипЗначения),Истина,Ложь); КонецЕсли; Возврат Ложь; КонецФункции // обПустоеЗначение() |
|||
7
Boudybuilder
21.08.12
✎
13:25
|
я в шоке со всего этого...
в одном и другом случае Тип = ДокументСсылка. Какого тогда на второй ругается... ?!!!!!!!!! |
|||
8
Reset
21.08.12
✎
13:31
|
Мне кажется, что, несмотря на уверения автора, там не ссылка.
|
|||
9
Ненавижу 1С
гуру
21.08.12
✎
13:31
|
(6) пясец, особенно это:
?(Значение = Новый(ТипЗначения),Истина,Ложь) |
|||
10
BiBijke
21.08.12
✎
13:35
|
(6) шо за грабли, все ето в 3-4 строчки можно уместить :)
|
|||
11
Boudybuilder
21.08.12
✎
13:37
|
(9) Это ж типовая!
|
|||
12
Boudybuilder
21.08.12
✎
13:43
|
Регистратор КолонкаТаблицыЗначений КолонкаТаблицыЗначений
Заголовок "Реєстратор" Строка Имя "Регистратор" Строка ТипЗначения Возврат товаров от покупателя, Заказ покупателя, Расходный ордер на товары, Приходный ордер на товары, Резервирование товаров, Поступление товаров и услуг в НТТ, Комплектация номенклатуры, Списание товаров, Требование-накладная, Переоценка товаров, принятых на комиссию, Корректировка серий и характеристик товаров, Возврат товаров поставщику, Корректировка записей регистров, Фан ремонт внутр, Корректировка заказа покупателя, Передача малоценки в эксплуатацию, Поступление товаров и услуг, Внутренний ремонт, Отчет о розничных продажах, Перемещение товаров, Корректировка качества товаров, Отчет комиссионера о продажах, Закрытие заказов покупателей, Возврат товаров поставщику из НТТ, Реализация товаров и услуг, Авансовый отчет ОписаниеТипов Ширина 10 Число Регистратор КолонкаТаблицыЗначений КолонкаТаблицыЗначений Заголовок "Реєстратор" Строка Имя "Регистратор" Строка ТипЗначения Возврат товаров от покупателя, Заказ покупателя, Расходный ордер на товары, Приходный ордер на товары, Резервирование товаров, Поступление товаров и услуг в НТТ, Комплектация номенклатуры, Списание товаров, Требование-накладная, Переоценка товаров, принятых на комиссию, Корректировка серий и характеристик товаров, Возврат товаров поставщику, Корректировка записей регистров, Фан ремонт внутр, Корректировка заказа покупателя, Передача малоценки в эксплуатацию, Поступление товаров и услуг, Внутренний ремонт, Отчет о розничных продажах, Перемещение товаров, Корректировка качества товаров, Отчет комиссионера о продажах, Закрытие заказов покупателей, Возврат товаров поставщику из НТТ, Реализация товаров и услуг, Авансовый отчет ОписаниеТипов Ширина 10 Число Уже и колонки сравниваю... Как еще определить? |
|||
13
BiBijke
21.08.12
✎
13:52
|
(12) ты в отладчике смотрел ТИП Строка0.Регистратор ? Что он тебе выдал?
|
|||
14
Boudybuilder
21.08.12
✎
13:57
|
(13) Вычислить выражение?
Выражение: Строка0.Регистратор Там тип : ДокументСсылка.ПередачаМалоценкиВЭксплуатацию |
|||
15
Boudybuilder
21.08.12
✎
14:06
|
(1) Верно!
было так : ТаблицаМалоценки.ЗаполнитьЗначения(ЭтотОбъект, "Регистратор") надо так : ТаблицаМалоценки.ЗаполнитьЗначения(ЭтотОбъект.Ссылка, "Регистратор") |
|||
16
Boudybuilder
21.08.12
✎
14:41
|
Еще одна запара...
Если СписаниеВыполняетсяОбработкой Или СтруктураПараметров.УчетнаяПолитика[0].СписыватьПартииПриПроведенииДокументовУпр Тогда Вот ошибка: Преобразование значения к типу Булево не может быть выполнено Если СписаниеВыполняетсяОбработкой Или СтруктураПараметров.УчетнаяПолитика[0].СписыватьПартииПриПроведенииДокументовУпр Тогда Тут одно Истина другое Ложь. в чем тут может быть загвоздка? |
|||
17
Reset
21.08.12
✎
14:46
|
Наверняка опять не булево, а другой тип :)
|
|||
18
Reset
21.08.12
✎
14:47
|
В том смысле, что "Тут одно Истина другое Ложь" - неправда
|
|||
19
pumbaEO
21.08.12
✎
14:48
|
(16) Ложь
|
|||
20
Reset
21.08.12
✎
14:48
|
СписаниеВыполняетсяОбработкой=Неопределено
|
|||
21
Boudybuilder
21.08.12
✎
14:49
|
(17) А как тогда типы смотреть?
Я ж смотрю вычислением выражения или в табло... |
|||
22
pumbaEO
21.08.12
✎
14:49
|
Все переносишь из УТП в УТ подсистему малоценки?
|
|||
23
Reset
21.08.12
✎
14:49
|
(21) Надо смотреть в правльный момент. Точку останова поставь на условии
|
|||
24
Boudybuilder
21.08.12
✎
14:50
|
(22) Ну да...
Тут оказывается много заморочек. Но я , надеюсь все сделать ок. |
|||
25
Boudybuilder
22.08.12
✎
14:33
|
Процедура ДвижениеПартийТоваров(ОбрабатываемыйДокумент, ТаблицаСписания = Неопределено,
КоличествоСтрокВДокументе = 0, Упр = Истина, Бух = Истина, Нал = Истина, Останавливаться = Ложь, ПроведениеОстановлено = Ложь, ДокументМоментВремени = Неопределено, СписаниеВыполняетсяОбработкой = Ложь, СтруктураНаборовЗаписей = Неопределено, УчитыватьСуществующиеСтрокиДвиженийПартийТоваров = Ложь) Экспорт // Если не переданы строки документа, выбираем из базы. Если ТаблицаСписания = Неопределено Тогда // Таблица строк документов списания ТаблицаСписания = ПолучитьТаблицуСтрокДокументов(ОбрабатываемыйДокумент, Упр, Бух, Нал); КонецЕсли; КоличествоСтрокВДокументе = ТаблицаСписания.Количество(); СтруктураПараметров = Новый Структура; СтруктураДата = Новый Структура("Дата"); ПолучитьРеквизитыОбъекта(ОбрабатываемыйДокумент, СтруктураДата); Если ДокументМоментВремени = Неопределено Тогда ДокументМоментВремени = Новый МоментВремени(СтруктураДата.Дата, ОбрабатываемыйДокумент); КонецЕсли; СтруктураПараметров.Вставить("УчетнаяПолитика", ПолучитьУчетнуюПолитику(ДокументМоментВремени)); Если КоличествоСтрокВДокументе > 0 Тогда СтруктураПараметров.Вставить("ТекстСообщений", ""); СтруктураПараметров.Вставить("Отказ", Ложь); СтруктураПараметров.Вставить("ЕстьСтрокиОтражатьВУправленческомУчете", ТаблицаСписания.Найти(Истина, "ОтражатьВУправленческомУчете")<>Неопределено); СтруктураПараметров.Вставить("ВестиПартионныйУчетПоСкладам", УчетнаяПолитика("ВестиПартионныйУчетПоСкладам","Упр",,СтруктураПараметров)); Если НЕ СтруктураПараметров.ЕстьСтрокиОтражатьВУправленческомУчете Тогда Возврат; КонецЕсли; Если СтруктураНаборовЗаписей = Неопределено Тогда // Движения - наборы записей по регистрам СоздатьНаборыЗаписей(СтруктураПараметров); Иначе Для каждого Элемент Из СтруктураНаборовЗаписей Цикл СтруктураПараметров.Вставить(Элемент.Ключ, Элемент.Значение); КонецЦикла; КонецЕсли; ПодготовитьТаблицуСписания(СтруктураПараметров, ТаблицаСписания, Упр, Бух, Нал); Строка0 = ТаблицаСписания[0]; Если НЕ ЗначениеЗаполнено(Строка0.Регистратор) Тогда ТаблицаСписания.ЗаполнитьЗначения(ОбрабатываемыйДокумент, "Регистратор"); КонецЕсли; Если НЕ ЗначениеЗаполнено(Строка0.Период) Тогда ТаблицаСписания.ЗаполнитьЗначения(СтруктураДата.Дата, "Период"); КонецЕсли; СтруктураПараметров.Вставить("УчитыватьСуществующиеСтрокиДвиженийПартийТоваров", УчитыватьСуществующиеСтрокиДвиженийПартийТоваров); ВыполнитьСписание(СтруктураПараметров, ТаблицаСписания, ДокументМоментВремени, Останавливаться, ПроведениеОстановлено); КонецЕсли; // Сдвиг границы последовательности осуществляется только при онлайновом списании партий // либо из обработки проведение по партиям. ЗакрытиеЗаказовПокупателей = ТипЗнч(ОбрабатываемыйДокумент) = Тип("ДокументСсылка.ЗакрытиеЗаказовПокупателей"); Если СписаниеВыполняетсяОбработкой Или СтруктураПараметров.УчетнаяПолитика[0].СписыватьПартииПриПроведенииДокументовУпр Тогда Если Упр Тогда СдвигатьГраницу = ОпределитьНеобходимостьСдвигаГраницы(ДокументМоментВремени,"Упр"); Если СдвигатьГраницу Тогда Последовательности.ПартионныйУчет.УстановитьГраницу(ДокументМоментВремени); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ДвижениеПартийТоваров() Поставил тут точку останова Если СписаниеВыполняетсяОбработкой Или СтруктураПараметров.УчетнаяПолитика[0].СписыватьПартииПриПроведенииДокументовУпр Тогда . Тут проблема во второв выражении. Оказывается эта процедура почему то проходит два раза. Первый раз Если СписаниеВыполняетсяОбработкой Или СтруктураПараметров.УчетнаяПолитика[0].СписыватьПартииПриПроведенииДокументовУпр Тогда - это ИСТИНА , второй ра - НЕОПРЕДЕЛЕНО!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |