Имя: Пароль:
1C
1С v8
Помогите с ошибкой
,
0 metalman
 
22.12.11
16:24
Провожу документ Реализация товаров услуг и вылетает ошибка "Поле объекта не обнаружено и т.д.". Не пойму где смотреть...
1 Amra
 
22.12.11
16:25
5 лет... А задает вопросы кавк будто 5 дней
2 Ринат-СПб
 
22.12.11
16:25
Какого поля? нажми перейти в конфигуратор - он покажет в какой строке у тебя ошибка
3 YF
 
22.12.11
16:26
(0) Отладчик спасет отца русской демократии, заодно и особу приближенную к императору
4 Затейник
 
22.12.11
16:32
Недопрограммировали документ! позовите программиста.
5 metalman
 
22.12.11
16:42
(2) я нажимаю перейти в конфигуратор просит пароль. пароля не знаю, как бы его узнать?
6 YF
 
22.12.11
16:42
(5) тогда только (4)
7 Bubble
 
22.12.11
16:49
(5) Попробуй пароль 123 ввести
8 Trier
 
22.12.11
16:52
(7)Я считаю 135 гораздо более вероятным вариантом
9 metalman
 
22.12.11
16:52
(5) откуда ты знал?:)
10 metalman
 
22.12.11
16:56
Вот в этой процедуре ошибка
Процедура СписаниеПартий(СтрокаДокумента, СтруктураПараметров, РегистрУчета)    
   КодыОпераций = Перечисления.КодыОперацийПартииТоваров;
   
   // Партии для данного учета
   ИмяРегистра = ПолучитьИмяРегистра("ПартииТоваров", РегистрУчета, СтрокаДокумента);
   
   // Если нет регистра, по которому списываем, тогда пропускаем
   Если ИмяРегистра="" Тогда
       Возврат;
   КонецЕсли;
   
   ТаблицаПартий   = СтруктураПараметров["Таблица"+ИмяРегистра] ;
   
   НайденныеСтроки = ОтобратьСтрокиПартий(ТаблицаПартий, СтрокаДокумента, РегистрУчета);
   
   // Найденные строки перенесем в таблицу значений, которую нужно отсортировать в соответствии со стратегией списания
   ТаблицаОстатки = Новый ТаблицаЗначений;
   
   // Добавим колонку с индексом
   ТаблицаОстатки.Колонки.Добавить("ИндексНайденнойСтроки", ПолучитьОписаниеТиповЧисла(15, 2));
   
   Для Каждого Кол Из ТаблицаПартий.Колонки Цикл
       ТаблицаОстатки.Колонки.Добавить(Кол.Имя, Кол.ТипЗначения);
   КонецЦикла;
   
   Сч = 0;
   Для Каждого Строка Из НайденныеСтроки Цикл
       НоваяСтрока = ТаблицаОстатки.Добавить();
       НоваяСтрока.ИндексНайденнойСтроки = Сч;
       Для Каждого Кол Из ТаблицаПартий.Колонки Цикл
           Если ПустаяСтрока(Кол.Имя) ИЛИ Кол.Имя = "QuieryId" Тогда
               Продолжить;
           КонецЕсли;
           
           НоваяСтрока[Кол.Имя] = Строка[Кол.Имя];
       КонецЦикла;
       Сч = Сч + 1;
   КонецЦикла;
   
   // Сортировка партий по стратегии списания (fifo, lifo, по-средней + дополнительные правила)
   ОтсортироватьПартииПоСтратегии(ТаблицаОстатки, СтрокаДокумента, СтруктураПараметров);
   
   // Подлежащее погашению при списании количество
   КоличествоОсталосьПогасить = СтрокаДокумента.Количество;
   
   // В строке может быть указана стоимость поступления, если затем товар будет оприходован с другой стоимостью
   СтоимостьПоступлениеОсталосьПогасить = 0;
   Если СтрокаДокумента.ОтражатьВУправленческомУчете Тогда
       СтоимостьПоступлениеОсталосьПогасить = СтрокаДокумента.СтоимостьПоступление;
   КонецЕсли;
   
   Для Каждого СтрокаПартии Из ТаблицаОстатки Цикл
       
       Если КоличествоОсталосьПогасить <= 0 Тогда
           Прервать;
       КонецЕсли;
       
       // Количество по строке больше 0
       Если НЕ СтрокаПартии.Количество > 0 Тогда
           Продолжить;
       КонецЕсли;
       
       // Проверки доп. условий
       Если НЕ ПроверитьПартию(СтрокаПартии, СтрокаДокумента, СтруктураПараметров, РегистрУчета) Тогда
           Продолжить
       КонецЕсли;
       
       Если СтрокаПартии.Количество >= КоличествоОсталосьПогасить Тогда
           КоэффСписания = КоличествоОсталосьПогасить/СтрокаПартии.Количество;
       Иначе
           КоэффСписания = 1;
       КонецЕсли;
       
       // Добавим новую строку
       Движение = ДобавитьДвижение(ПолучитьИмяРегистра("ПартииТоваров", РегистрУчета, СтрокаДокумента), СтруктураПараметров);
       
       // Свойства
       Движение.Период                = СтрокаДокумента.Период;
       Движение.Регистратор            = СтрокаДокумента.Регистратор;
       Движение.Активность            = Истина;
       Движение.ВидДвижения            = ВидДвиженияНакопления.Расход;
       
       // Измерения
       Движение.Номенклатура            = СтрокаПартии.Номенклатура;
       
       // Ресурсы
       Движение.Количество    = Окр(СтрокаПартии.Количество * КоэффСписания,3,1);
       Движение.Стоимость    = Окр(СтрокаПартии.Стоимость  * КоэффСписания,2,1);
       
       Если Движение.Количество < КоличествоОсталосьПогасить Тогда
           КоэффПоступления = Движение.Количество / КоличествоОсталосьПогасить;
       Иначе
           КоэффПоступления = 1;
       КонецЕсли;
       
       // Вспомогательное поле, не являющееся ресурсом, но используемое
       // для формирования записей по переоценке принятого на комиссию.
       Движение.СтоимостьПоступление = СтоимостьПоступлениеОсталосьПогасить * КоэффПоступления;
       СтоимостьПоступлениеОсталосьПогасить = СтоимостьПоступлениеОсталосьПогасить - Движение.СтоимостьПоступление;
       
       // Реквизиты
       Движение.КодОперации    = СтрокаДокумента.КодОперацииПартииТоваров;
       
       КоличествоОсталосьПогасить = КоличествоОсталосьПогасить - Движение.Количество;
       
       СтрокаПартии.Количество = СтрокаПартии.Количество - Движение.Количество;
       СтрокаПартии.Стоимость  = СтрокаПартии.Стоимость  - Движение.Стоимость;
       
       // Заполнение полей, специфических для учета
       ЗаполнитьПоляЗаписиСписания(Движение, СтрокаПартии, СтрокаДокумента, СтруктураПараметров, РегистрУчета, КоэффСписания, КоэффПоступления);
       
       // Обработка движений, связанных со списанием определенных партий по документу (специфика разных видов учета)
       ВыполнитьСвязанныеСоСписаниемДвижения(СтрокаДокумента, СтруктураПараметров, Движение, КоэффСписания, КоэффПоступления);
       
       // Обработка поступления
       ВыполнитьКорДвижение(РегистрУчета, СтрокаДокумента, СтруктураПараметров, Движение);
       
   КонецЦикла;
   
   // Таблицу значений перенесем в найденные строки
   Для Каждого Строка Из ТаблицаОстатки Цикл
       Для Каждого Кол Из ТаблицаПартий.Колонки Цикл
           
           Если ПустаяСтрока(Кол.Имя) ИЛИ Кол.Имя = "QuieryId" Тогда
               Продолжить;
           КонецЕсли;
           
           НайденныеСтроки[Строка.ИндексНайденнойСтроки][Кол.Имя] = Строка[Кол.Имя];
       КонецЦикла;
   КонецЦикла;
   
   // Товара не хватило
   Если (КоличествоОсталосьПогасить > 0) Тогда
       СообщитьОНехваткеПартии(СтрокаДокумента, СтруктураПараметров, РегистрУчета, КоличествоОсталосьПогасить);
   КонецЕсли;
   
КонецПроцедуры

а именно тут
НайденныеСтроки[Строка.ИндексНайденнойСтроки][Кол.Имя] = Строка[Кол.Имя];
Наверное Кол.Имя косячное?
11 Bubble
 
22.12.11
17:06
(10) удали строку "// Товара не хватило".
Либо поменяй местами слова "Товаров" и "Хватило"
Уверен, дело в этой строке.
12 metalman
 
22.12.11
17:08
(11) Не помогло:(((
13 Fish
 
22.12.11
17:10
(12) Поменяй слово "Товара" на слово "Ума" :)))
14 metalman
 
22.12.11
17:11
(12) сострил, да?:)
15 Fish
 
22.12.11
17:16
Типа того :))
Посмотри отладчиком чему равно НайденныеСтроки[Строка.ИндексНайденнойСтроки][Кол.Имя] и Строка[Кол.Имя]
16 MrSmola
 
22.12.11
17:20
11+12 на bash.org.ru, жесть)))
17 metalman
 
22.12.11
17:31
злые вы :(
18 Adilgeriy
 
22.12.11
17:34
жалко не пятница а так бы потянула бы
19 Gimalaj
 
23.12.11
17:51
Пятничный ап!
20 Inform
 
23.12.11
17:52
(11) бездарный ответ, это же элементарное логическое условие, необходимо убрать логическое отрицание "не", а не менять местами операторы комментария, вообще операторы комментария лучше не менять местами никогда...
21 Deon
 
23.12.11
17:55
(20) +500. А ведь действительно, если убрать "не", то товара будет хватать
22 wPa
 
23.12.11
18:34
(11) и что получится? хватило, но не товаров, а материалов ? куда он денет все это? Надо убирать "не", но не сразу а постепенно, чтобы не засыпало