Имя: Пароль:
1C
1С v8
Ошибка "Поле объекта не обнаружено" при создании колонки табл.части. 1С Бухг 8.
0 Oljaa_
 
08.10.15
11:20
Помогите пожалуйста с ошибкой.
Создала колонку в док Поступление товаров и услуг в табл.части товары и назвала ее "СкладЗатрат". Поступление товаров проходит по неск.складам. Поэтому нужно в формировании проводки учитывать соответствующее субконто. Делала это раньше на 8.1. Скопировала код в 8.2 и создала все так же. Но почему то выдает ошибку!? Никак не могу справиться с ней.
Вот код:
Функция ПодготовитьТаблицуТоваров

Если СчетУчетаВТаблице Тогда
             МассивСкладыЗатрат = ТаблицаТоваров.ВыгрузитьКолонку("СкладЗатрат");
             Запрос.УстановитьПараметр("Склад",      МассивСкладыЗатрат);
        конецесли;



Процедура ДвиженияПоРегистрам       БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтруктураШапкиДокумента.Склад);
Если СчетУчетаВТаблице Тогда
       БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтрокаТаблицы.СкладЗатрат, Истина, Заголовок);
            КонецЕсли;
1 aka AMIGO
 
08.10.15
11:21
а текст ошибки?
2 Oljaa_
 
08.10.15
11:22
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПоступлениеТоваровУслуг.МодульОбъекта(2669)}: Поле объекта не обнаружено (СкладЗатрат)
3 Buster007
 
08.10.15
11:25
ТаблицаТоваров
в этой функции выполняется запрос к ТЧ Товары, в этот запрос вынесла свое поле СкладЗатрат?
4 Buster007
 
08.10.15
11:26
+(3) а может и до где то, при получении ТаблицаТоваров
5 Oljaa_
 
08.10.15
11:29
нет, только видимость колонки добавляла

Процедура УстановитьВидимость(ИзмененСклад = Неопределено)
если  СчетУчетаВТаблице Тогда
        Колонки.СкладЗатрат.Видимость      = Истина;
    иначе
        Колонки.СкладЗатрат.Видимость      = Ложь;
    конецЕсли;


склад затрат на форму ТЧ Товары вынесла
6 aka AMIGO
 
08.10.15
11:34
(5) скопипасти сюда строку (2669)
7 Oljaa_
 
08.10.15
11:52
какую строку?
8 Buster007
 
08.10.15
12:22
Документ.ПоступлениеТоваровУслуг.МодульОбъекта(2669)
9 Oljaa_
 
08.10.15
12:26
А что там нужно дописать?
11 aka AMIGO
 
08.10.15
12:29
как можно сказать "что дописать", если срока нам не видна?
12 Oljaa_
 
08.10.15
12:34
))))))))))) верно ))))))))
вот из модуля:

Функция ПодготовитьТаблицуТоваров
Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Запрос.УстановитьПараметр("КонецПериода",    СтруктураШапкиДокумента.Дата);
        Запрос.УстановитьПараметр("Организация",     СтруктураШапкиДокумента.Организация);
        Запрос.УстановитьПараметр("Подразделение",   СтруктураШапкиДокумента.ПодразделениеОрганизации);
        Запрос.УстановитьПараметр("Счет",              ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахАТТ);
        Запрос.УстановитьПараметр("ПорядокСубконто", ПорядокСубконто);
        Запрос.УстановитьПараметр("Номенклатура",      МассивНоменклатуры);
        // добавлено
         Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Если СчетУчетаВТаблице Тогда
             МассивСкладыЗатрат = ТаблицаТоваров.ВыгрузитьКолонку("СкладЗатрат");
             Запрос.УстановитьПараметр("Склад",      МассивСкладыЗатрат);
        конецесли;

Процедура ДвиженияПоРегистрам
// Проводки по товарам
        Для каждого СтрокаТаблицы Из ТаблицаПоТоварам Цикл

            Проводка = Проводки.Добавить();

            Проводка.Период       = ДатаДока;
            Проводка.Организация  = СтруктураШапкиДокумента.Организация;
            Проводка.Содержание  = "Поступление " + БухгалтерскийУчет.ПолучитьНазваниеОбъекта(СтрокаТаблицы.СчетУчета) + " по вх.д." + НомерВходящегоДокумента + " от " + Формат(ДатаВходящегоДокумента, "ДЛФ=Д");

            Проводка.СчетДт       = СтрокаТаблицы.СчетУчета;
            Если (НЕ НТТ) ИЛИ (мИспользоватьОборотнуюНоменклатуру) Тогда
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура", СтрокаТаблицы.Номенклатура,Истина, Заголовок);
            КонецЕсли;
            
               //Р.О
               БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтруктураШапкиДокумента.Склад);
            Если СчетУчетаВТаблице Тогда
                 БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтрокаТаблицы.СкладЗатрат, Истина, Заголовок);
            КонецЕсли;
13 ibreiter
 
08.10.15
12:47
В ТаблицаТоваров по ходу нет колонки такой
14 aka AMIGO
 
08.10.15
12:55
(13) очень похоже.
Просто глянуть в отладчике на ТаблицаТоваров - на любую строку
15 Oljaa_
 
08.10.15
12:55
вот именно что есть(((
16 Oljaa_
 
08.10.15
12:56
он даже в режиме 1с заполняется
17 Oljaa_
 
08.10.15
13:01
18 aka AMIGO
 
08.10.15
13:04
(15) посмотри, все-ли позиции/реквизиты распределены по местам (по запятым)
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",СтрокаТаблицы.СкладЗатрат, Истина, Заголовок);

ЗЫ. я проверить не могу, нет 8-ки
19 aka AMIGO
 
08.10.15
13:06
+18 и еще - Проводка.СчетДт в субконто точно стоит "Склады" ?
20 Oljaa_
 
08.10.15
13:42
Проверила. Все норм
21 aka AMIGO
 
08.10.15
13:43
(20) стукнуть тебя, что-ли.. :)
с отладчиком умеешь работать?
22 Buster007
 
08.10.15
13:44
(17) это не доказательство, что в ТаблицаТоваров есть колонка СкладЗатрат
23 Oljaa_
 
08.10.15
13:50
)))
проверила отладчиком. Не определят он этот склад (
Сейчас расскажу как создала:
в закладке данные добавила реквизит СкладЗатрат- выбрала его тип (справочник.склады) и добавила в форму документа колонку с тем же именем
24 vicof
 
08.10.15
13:51
(23) А где фотография в профиле, мадемуазель? У Вас от этого карма портится и код не работает.
25 Oljaa_
 
08.10.15
13:53
)))))))))) вот если заработает выложу свое счастливое фото))))))
26 aka AMIGO
 
модератор
08.10.15
13:57
(23) ну, теперь вверх по коду, ретроанализ: почему Склад не заполняется/не попадает в Таблицу..
Опять-же любимым отладчиком


(24) Спокойно, гусары.. молчать..
Подобное попрошайничество чревато последствиями.
27 vicof
 
08.10.15
13:58
(26) Це не попрошайничество, це констатация фактов.
28 Oljaa_
 
08.10.15
14:02
))))))))
а как отладчиком это выяснить
я поставила точку на строку
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтруктураШапкиДокумента.Склад);
            Если СчетУчетаВТаблице Тогда
                 БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады",       СтрокаТаблицы.СкладЗатрат, Истина, Заголовок);
            КонецЕсли;

ну и не показывает он этот склад
низнаю уже что не так(
29 aka AMIGO
 
модератор
08.10.15
14:05
(23) Не определят он этот склад (
Он - это что? или кто?
ты мучаешь некий Счет ПС в операторе:
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт..

В нём есть субконто с типом "Склады";

2. в операторе СтрокаТаблицы.СкладЗатрат присвоено/нет значение?

(28) если остановилась программа на точке - наведи мышь на переменную СтрокаТаблицы.СкладЗатрат что будет видно?
Или снеси её в табло, вместе с переменной "СтрокаТаблицы"
30 Cyberhawk
 
08.10.15
14:08
Текст запроса показывай, нет там поля с именем СкладЗатрат...
31 aka AMIGO
 
08.10.15
14:11
(30) вроде-ж в (12) она показала запрос.
32 Oljaa_
 
08.10.15
14:11
еще раз

Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Запрос.УстановитьПараметр("КонецПериода",    СтруктураШапкиДокумента.Дата);
        Запрос.УстановитьПараметр("Организация",     СтруктураШапкиДокумента.Организация);
        Запрос.УстановитьПараметр("Подразделение",   СтруктураШапкиДокумента.ПодразделениеОрганизации);
        Запрос.УстановитьПараметр("Счет",              ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахАТТ);
        Запрос.УстановитьПараметр("ПорядокСубконто", ПорядокСубконто);
        Запрос.УстановитьПараметр("Номенклатура",      МассивНоменклатуры);
        // Р.О
         Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Если СчетУчетаВТаблице Тогда
             МассивСкладыЗатрат = ТаблицаТоваров.ВыгрузитьКолонку("СкладЗатрат");
             Запрос.УстановитьПараметр("Склад",      МассивСкладыЗатрат);
        конецесли;
33 aka AMIGO
 
08.10.15
14:12
(30) а, точно! "Склад"  и "СкладЗатрат" - это разные склады?
34 Oljaa_
 
08.10.15
14:12
сделала отладчиком.
Пусто на СтрокаТаблицы.СкладЗатрат
а в табло где значение пишет эту ошибку(
ааааааааааааааааааааааааааа
что делать
35 Cyberhawk
 
08.10.15
14:12
(31) лол?
(32) текст запроса покажи
36 aka AMIGO
 
08.10.15
14:14
(35) ага, это лол :)
А запроса для получения ТаблицаТоваров не видать :)
37 Oljaa_
 
08.10.15
14:14
лол? что такое лол)))))?
какой текст запроса
я ж выше его показала
38 aka AMIGO
 
08.10.15
14:16
(37) "лол" - это смешно, вишь, ему надо-мной :)
Итак, ждем Запрос , формирующий ТаблицаТоваров, с колонкой "СкладЗатрат" :)
39 vicof
 
08.10.15
14:16
(37) Может, лучше замуж и борщи варить?
40 aka AMIGO
 
08.10.15
14:19
+38 ТаблицаТоваров - это табличная часть документа?
Тогда в этом месте:
             МассивСкладыЗатрат = ТаблицаТоваров.ВыгрузитьКолонку("СкладЗатрат");
             Запрос.УстановитьПараметр("Склад",      МассивСкладыЗатрат);
в отладчике на второй строке поставь точку, когда остановится - посмотри в табло есть-ли значения в ТаблицаТоваров..
41 aka AMIGO
 
08.10.15
14:20
+40 и заодно загружен-ли МассивСкладыЗатрат.
42 aka AMIGO
 
08.10.15
14:24
(32) это не Запрос.. Это только установка параметров Запроса.
Запроса самого так и нет.. :(
43 Oljaa_
 
08.10.15
14:25
44 Oljaa_
 
08.10.15
14:27
просто раньше в 8.1 все и так работало, как я сейчас сделала
45 aka AMIGO
 
08.10.15
14:28
(43) кусочек запроса видно.. ну и ладно :)

можно тебя попросить повторить то-же, но оставить переменную СтрокаТаблицы ?
вместо СтрокаТаблицы.СкладЗатрат..
или ниже..
46 aka AMIGO
 
08.10.15
14:29
(44) "а вчера работало!" - плохой аргумент..
47 ibreiter
 
08.10.15
14:34
По коду выше поднимайтесь и смотрите, откуда у вас появилась ТаблицаТоваров, скорее всего функцией или процедурой - вот в этой функции или процедуре и будет ваш запрос для формирования таблицы, в котором сто процентов нет нужного поля в запросе
48 Oljaa_
 
08.10.15
14:34
49 ibreiter
 
08.10.15
14:36
У строки проверьте: есть нужное поле?
50 aka AMIGO
 
08.10.15
14:36
(48) ТаблицаТоваров НЕ определена!
какая тут может быть строкатаблицы.. или склад в строке..
Ищи, где теряешь Таблицу..
51 Oljaa_
 
08.10.15
14:38
блин, где я ее теряю?))))))))))
я уже все на 10 раз пересмотрела
52 Oljaa_
 
08.10.15
14:38
Функция ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента, ЭтоУслуги = Ложь)

    ТаблицаТоваров = РезультатЗапросаПоТоварам.Выгрузить();
    
    // Вид ценностей объекта учета для данной строки
    ТаблицаТоваров.Колонки.Добавить("ВидЦенности", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыЦенностей"));
    ТаблицаТоваров.Колонки.Добавить("Ценность");
    
    Если Не ЭтоУслуги И мУчетВПродажныхЦенах И (СтруктураШапкиДокумента.Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный) Тогда
        
        ТаблицаТоваров.Колонки.Добавить("РозничнаяЦена");
        ТаблицаТоваров.Колонки.Добавить("УчетноеКоличество");
        ТаблицаТоваров.Колонки.Добавить("УчетнаяСумма");
        
        // Установим параметры запроса
        ПорядокСубконто = Новый Массив();
        ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
        ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
        
        МассивНоменклатуры = ТаблицаТоваров.ВыгрузитьКолонку("Номенклатура");
        
        
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Запрос.УстановитьПараметр("КонецПериода",    СтруктураШапкиДокумента.Дата);
        Запрос.УстановитьПараметр("Организация",     СтруктураШапкиДокумента.Организация);
        Запрос.УстановитьПараметр("Подразделение",   СтруктураШапкиДокумента.ПодразделениеОрганизации);
        Запрос.УстановитьПараметр("Счет",              ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахАТТ);
        Запрос.УстановитьПараметр("ПорядокСубконто", ПорядокСубконто);
        Запрос.УстановитьПараметр("Номенклатура",      МассивНоменклатуры);
        // Р.О
         Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
        Если СчетУчетаВТаблице Тогда
             МассивСкладыЗатрат = ТаблицаТоваров.ВыгрузитьКолонку("СкладЗатрат");
             Запрос.УстановитьПараметр("Склад",      МассивСкладыЗатрат);
            
        конецесли;
53 Oljaa_
 
08.10.15
14:38
вот эта функция- начало
54 Cyberhawk
 
08.10.15
14:40
Опять последние 20 сообщений не в тему. При чем тут ТаблицаТоваров в отлидчике, когда в коде испольуется ТаблицаПоТоварам... мда
55 Cyberhawk
 
08.10.15
14:41
*отладчике
56 ibreiter
 
08.10.15
14:41
После строки ТаблицаТоваров = РезультатЗапросаПоТоварам.Выгрузить(); остановите отладку и проверьте - что в таблице получилось - там не будет нужной вам колонки.
И потом идите к тому участку кода, где формируется РезультатЗапросаПоТоварам
57 aka AMIGO
 
08.10.15
14:43
(53) все имеют право на ошибку.. я ведь не вижу её конфигшурации..
58 Cyberhawk
 
08.10.15
14:43
В общем, автор, стучи в аську/почту - подключусь удаленно и посмотрю, что там
59 aka AMIGO
 
08.10.15
14:44
(58) другое дело! жаль у меня прокси закручен наглухо.
60 vicof
 
08.10.15
14:47
(58) Добрый самаритянин)
61 Oljaa_
 
08.10.15
14:47
я в почту отписалась))))
62 Cyberhawk
 
08.10.15
14:51
(59) а почему "жаль" - ты хотел понаблюдать или, быть может, даже поучаствовать? :)
(60) Угу, ведь "примеры человеческой доброты встречаются у всех народов и во всех верах, что Закон и заповеди Божии исполняют люди самых разных национальностей и разных вероисповеданий", аминь
63 aka AMIGO
 
08.10.15
14:57
(62) конечно, поучаствовать..
Кстати, года полтора назад у меня работал TeamViewer, помогал кому-то с Дальнего Севера..
64 Oljaa_
 
08.10.15
15:00
спасибо спасибо Cyberhawk!!!!!!
все работает!!!!
65 Cyberhawk
 
08.10.15
15:00
Все, разобрались, дело было в стандартной одинэсовской технологии получения полей для формирования запроса - туда в структуру надо было дописать новый реквизит ТЧ.
Расходимся... а не, фотку автор обещал, кстати.
66 Oljaa_
 
08.10.15
15:01
)))))))))))) обещал значит будет)))
67 aka AMIGO
 
08.10.15
15:01
(65) ммм.. брезжила такая мысля..  Но - без видимости кода не сформировалась окончательно.
А впрочем - молодец! :)
68 Oljaa_
 
08.10.15
15:04
молодец!!! спаситель)))
69 aka AMIGO
 
08.10.15
15:08
(66) Помести в личку ещё город, где живешь, чтоб не было лишних вопросов :)
70 Oljaa_
 
08.10.15
15:13
нууу) ну хорошо))))))))))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн