|
Обращение к процедуре как к функции (Записать) | ☑ | ||
---|---|---|---|---|
0
XiPyPg2012
26.09.13
✎
12:28
|
Подскажите где ошибка, в этом варианте:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) для каждого стр из Товары цикл ЗакПоставщику = стр.ПЛ_ЗаказПоставщику.ПолучитьОбъект(); ТоварыЗаказа = ЗакПоставщику.Товары; для каждого строка из ТоварыЗаказа цикл строка.ПЛ_ОрганизацияОтгрузки = "!!!"; конеццикла; закПоставщику.Записать(); //закПоставщику.Записать(РежимЗаписиДокумента.Запись); конеццикла; КонецПроцедуры Просто есть большая доработка в ней такая-же ошибка. Это как пример чтоб разобраться в чем дело. |
|||
1
Чайник Рассела
26.09.13
✎
12:30
|
апшипка тут
для каждого строка из ТоварыЗаказа цикл |
|||
2
XiPyPg2012
26.09.13
✎
12:30
|
да забыл уточнить ошибку в клиентском приложение не выдает, просто начал смотреть почему значения в документе не поменялись и в отладчике выяснилась эта проблема.
|
|||
3
XiPyPg2012
26.09.13
✎
12:32
|
(1) в этом нету ошибки это тут не правильно код он выделил, я строка использую не как функции а как переменную и суть не в этом. потому что в рабочей версии такого нет там используется СтрЗаказа
|
|||
4
Privalov
26.09.13
✎
12:36
|
Сначала определись, что у тебя есть чего нет, код нормальный покажи и ошибку.
|
|||
5
goleaff2006
26.09.13
✎
12:38
|
Че за ошибка то телепатов нету!
|
|||
6
Любопытная
26.09.13
✎
12:39
|
(3) не надо использовать зарезервированные слова в названиях переменных. Это неправильно, переименуйся
|
|||
7
Infsams654
26.09.13
✎
12:39
|
(3) как в рабочей версии сделано - там используется СтрЗаказа, так и делай, а не то что в (0)
|
|||
8
XiPyPg2012
26.09.13
✎
12:54
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщикуТовары.Ссылка, | ЗаказПоставщикуТовары.НомерСтроки |ИЗ | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары |ГДЕ | ЗаказПоставщикуТовары.Номенклатура = &Номенклатура | И ЗаказПоставщикуТовары.Характеристика = &Характеристика | И ЗаказПоставщикуТовары.Отменено = ЛОЖЬ | И ЗаказПоставщикуТовары.Ссылка = &Ссылка"; //Товары = ЭтотОбъект.Товары; Для каждого стр Из Товары Цикл Запрос.УстановитьПараметр("Номенклатура", стр.Номенклатура); Запрос.УстановитьПараметр("Характеристика", стр.Характеристика); Запрос.УстановитьПараметр("Ссылка", стр.ПЛ_ЗаказПоставщику); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Количество() > 0 тогда ЗакПоставщику = Стр.ПЛ_ЗаказПоставщику.ПолучитьОбъект(); ТоварыЗаказа = ЗакПоставщику.Товары; КонецЕсли; СделаноРазбиение = ложь; Если Выборка.Количество() = 1 и стр.Отменено = Ложь тогда выборка.Следующий(); Если стр.Количество = ТоварыЗаказа[выборка.НомерСтроки - 1].Количество и стр.КоличествоУпаковок = ТоварыЗаказа[выборка.НомерСтроки - 1].КоличествоУпаковок Тогда ТоварыЗаказа[выборка.НомерСтроки - 1].ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; СделаноРазбиение = истина; иначе КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); ТекСтрКоличество = 0; Если стр.КоличествоУпаковок > 0 Тогда ТекСтрКоличество = стр.КоличествоУпаковок; ИмяПоляКоличество = "КоличествоУпаковок"; иначе ТекСтрКоличество = стр.Количество; ИмяПоляКоличество = "Количество"; КонецЕсли; ТекущаяСтрокаТаблицы = ТоварыЗаказа[выборка.НомерСтроки - 1]; ИндексТекущейСтроки = ТоварыЗаказа.Индекс(ТекущаяСтрокаТаблицы); НоваяСтрока = ТоварыЗаказа.Вставить(ИндексТекущейСтроки + 1); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекущаяСтрокаТаблицы); НоваяСтрока[ИмяПоляКоличество] = ТекущаяСтрокаТаблицы[ИмяПоляКоличество] - ТекСтрКоличество; ТекущаяСтрокаТаблицы[ИмяПоляКоличество] = ТекСтрКоличество; Если НоваяСтрока <> Неопределено Тогда НоваяСтрока.КодСтроки = 0; СтруктураДействий = Новый Структура; ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЗакПоставщику); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрокаТаблицы, СтруктураДействий, КэшированныеЗначения); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения); ТекущаяСтрокаТаблицы.ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; //НоваяСтрока.ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; КонецЕсли; СделаноРазбиение = Истина; конецесли; иначеесли Выборка.Количество() > 1 и стр.Отменено = Ложь тогда пока выборка.Следующий() цикл если стр.Количество = ТоварыЗаказа[выборка.НомерСтроки - 1].Количество и стр.КоличествоУпаковок = ТоварыЗаказа[выборка.НомерСтроки - 1].КоличествоУпаковок Тогда ТоварыЗаказа[выборка.НомерСтроки - 1].ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; СделаноРазбиение = истина; прервать; иначеесли стр.Количество < ТоварыЗаказа[выборка.НомерСтроки - 1].Количество и стр.КоличествоУпаковок < ТоварыЗаказа[выборка.НомерСтроки - 1].КоличествоУпаковок Тогда КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); ТекСтрКоличество = 0; Если стр.КоличествоУпаковок > 0 Тогда ТекСтрКоличество = стр.КоличествоУпаковок; ИмяПоляКоличество = "КоличествоУпаковок"; иначе ТекСтрКоличество = стр.Количество; ИмяПоляКоличество = "Количество"; КонецЕсли; ТекущаяСтрокаТаблицы = ТоварыЗаказа[выборка.НомерСтроки - 1]; ИндексТекущейСтроки = ТоварыЗаказа.Индекс(ТекущаяСтрокаТаблицы); НоваяСтрока = ТоварыЗаказа.Вставить(ИндексТекущейСтроки + 1); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекущаяСтрокаТаблицы); НоваяСтрока[ИмяПоляКоличество] = ТекущаяСтрокаТаблицы[ИмяПоляКоличество] - ТекСтрКоличество; ТекущаяСтрокаТаблицы[ИмяПоляКоличество] = ТекСтрКоличество; Если НоваяСтрока <> Неопределено Тогда НоваяСтрока.КодСтроки = 0; СтруктураДействий = Новый Структура; ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЗакПоставщику); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрокаТаблицы, СтруктураДействий, КэшированныеЗначения); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения); ТекущаяСтрокаТаблицы.ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; //НоваяСтрока.ПЛ_ОрганизацияОтгрузки = "Отгрузка организованна отд.логистики АСТ"; СделаноРазбиение = истина; прервать; иначеесли стр.Количество > ТоварыЗаказа[выборка.НомерСтроки - 1].Количество и стр.КоличествоУпаковок > ТоварыЗаказа[выборка.НомерСтроки - 1].КоличествоУпаковок Тогда СделаноРазбиение = ложь; конецесли; КонецЕсли; КонецЦикла; если СделаноРазбиение = ложь тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "В заявки на транспортировку " + стр.Номенклатура + " указано больше чем требуется по " + стр.ПЛ_ЗаказПоставщику; Сообщение.Сообщить(); конецесли; конецесли; //КонецЕсли; если выборка.Количество() > 0 и СделаноРазбиение = Истина тогда ЗакПоставщику.Записать(); конецесли; КонецЦикла; |
|||
9
XiPyPg2012
26.09.13
✎
12:55
|
ЗакПоставщику.Записать(); точка останова тут, нажимаешь вычислить...пишет Обращение к процедуре как к функции (Записать)
|
|||
10
ДенисЧ
26.09.13
✎
12:56
|
СделаноРазбиение = Истина это сильно...
(9) А вот нефиг вычислять в отладчике процедуру. Что он тебе там покажет? И из окна вычислений внизу тоже убери.... |
|||
11
XiPyPg2012
26.09.13
✎
13:05
|
смысл не в том что покажет смысл в том что он не записывает
|
|||
12
catena
26.09.13
✎
13:07
|
(11)Проблема явно в другом месте
|
|||
13
Галахад
гуру
26.09.13
✎
13:07
|
(11) Ну, иди дальше. Перед записью и т.д.
|
|||
14
XiPyPg2012
26.09.13
✎
13:26
|
Все разобрался, какой-то умник вставил при чтение заполнить этот же реквезит на основание другой ерунды
|
|||
15
Infsams654
26.09.13
✎
14:30
|
(14) похоже, я - телепат, см. (7)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |