|
Свернуть строки в столбце для 1С:комплексная автоматизация 8.2 | ☑ | ||
---|---|---|---|---|
0
studentca
16.10.11
✎
11:17
|
Здравствуйте! Я новичок и прошу о помощи. У меня следующая проблема: для конфигурации 1С:Комплексная автоматизация 8.2 в документе "Реализация товаров и услуг" для печати бланка ТТН мне необходимо заменить номенклатуру на номенклатурную группу затрат и затем объединить эти строки в столбце (так как в моем случае номенклатурная группа затрат одна единственная и выводится много строк с одним одинаковым словом).
Я сделала замену, у меня все правильно выходит, но потом для объединения строк в этом столбце, я хотела сделать вот так: после того, как сформирована таблица при помощи запроса я вставила следующую строчку ЗапросТовары.Свернуть("ТоварНаименование"); И он мне выдает такую вот ошибку: {Обработка.ПечатьТТН.Форма.Форма.Форма(446)}: Поле объекта не обнаружено (Номенклатура) Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда Затем я нашла эту строчку и решила ее закомментировать, но он показывает тоже самое. Скажите, пожалуйста в чем моя ошибка. Спасибо за ответ заранее. |
|||
1
Grusswelle
16.10.11
✎
11:18
|
(0) Без фото не взлетит!
|
|||
2
Мимохожий Однако
16.10.11
✎
11:23
|
ВыборкаСтрок.Номенклатура это , видимо, ссылка. Отладчиком встань на эту строку и прочитай полученное значение. После этого надо дальше думать.
|
|||
3
studentca
16.10.11
✎
11:30
|
{(1)}Значение не является значением объектного типа (Номенклатура)
|
|||
4
studentca
16.10.11
✎
11:31
|
Может быть я неправильно укзываю Табличную часть для запроса Свернуть...
|
|||
5
Мимохожий Однако
16.10.11
✎
11:33
|
ОФФ: видимо чукотский вариант. см (2).
|
|||
6
studentca
16.10.11
✎
12:02
|
Так мне никто не подскажет, как мне объединить строки в этой табличной части?
|
|||
7
Мимохожий Однако
16.10.11
✎
12:16
|
Выложи свой код на обозрение. Телепатировать по выходным трудно.
|
|||
8
studentca
16.10.11
✎
12:30
|
Запрос.Текст =
"ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.МассаБрутто КАК МассаБрутто, //исправление | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НоменклатурнаяГруппаЗатрат.Наименование КАК Строка(1000)) КАК ТоварНаименование, //Исправление | ВложенныйЗапрос.Номенклатура." + ТоварКод + " КАК Артикул, .... ЗапросТовары = Запрос.Выполнить().Выгрузить(); Если ПолучитьДанныеПечати = Истина Тогда Возврат ПолучитьДанныеДляТТНПриложение4(ЗапросТовары, Шапка); КонецЕсли; //Исправление ЗапросТовары.Свернуть("ТоварНаименование"); //Исправление |
|||
9
studentca
16.10.11
✎
12:32
|
Первое мое исправление..это я поменяла саму номенклатуру на номенклатурную группу (она у меня одна единственная)и получается следующее
Артикул или номер по прейскуранту Коли- чество Цена руб. коп. Наименование продукции, товара (груза), ТУ, марка, размер, сорт 3 4 5 6 00000000006 1 400,000 8,20 медикамент 00000000007 1 400,000 8,00 медикамент 00000000033 11 000,000 6,11 медикамент 00000000060 3 600,000 6,00 медикамент 00000000061 3 600,000 9,80 медикамент 00000000091 9 800,000 15,50 медикамент 00000000152 40 200,000 8,70 медикамент Итого 71 000,000 и мне нужно столбец с "медикаментами объединить"...Как сделать мне это? |
|||
10
studentca
16.10.11
✎
12:38
|
Если полностью с запрос
Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.МассаБрутто КАК МассаБрутто, //исправление | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НоменклатурнаяГруппаЗатрат.Наименование КАК Строка(1000)) КАК ТоварНаименование, //Исправление | ВложенныйЗапрос.Номенклатура." + ТоварКод + " КАК Артикул, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК БазоваяЕдиницаНаименование, | ВложенныйЗапрос.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление КАК ВидУпаковки, | ВложенныйЗапрос.Характеристика КАК Характеристика, | ВложенныйЗапрос.Серия КАК Серия, | ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС, | ВложенныйЗапрос.Цена КАК Цена, | ВЫБОР КОГДА((ВложенныйЗапрос.ПроцентСкидкиНаценки = 0) И | (ВложенныйЗапрос.ПроцентАвтоматическихСкидок = 0)) | ТОГДА ЛОЖЬ | ИНАЧЕ Истина | КОНЕЦ КАК ЕстьСкидкиПоСтроке, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.КоличествоМест КАК КоличествоМест, | ВложенныйЗапрос.Сумма КАК Сумма, | ВложенныйЗапрос.СуммаНДС КАК СуммаНДС, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | | ( | ВЫБРАТЬ | РеализацияТоваровУслуг.Номенклатура КАК Номенклатура, | СУММА(РеализацияТоваровУслуг.Количество * РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Вес) КАК МассаБрутто, | РеализацияТоваровУслуг.Коэффициент КАК Коэффициент, | РеализацияТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | РеализацияТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест, | РеализацияТоваровУслуг.ХарактеристикаНоменклатуры КАК Характеристика, | РеализацияТоваровУслуг.СерияНоменклатуры КАК Серия, | РеализацияТоваровУслуг.СтавкаНДС КАК СтавкаНДС, | РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена, | РеализацияТоваровУслуг.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СУММА(РеализацияТоваровУслуг.Количество) КАК Количество, | СУММА(РеализацияТоваровУслуг.КоличествоМест) КАК КоличествоМест, | СУММА(РеализацияТоваровУслуг.Сумма * &Курс / &Кратность) КАК Сумма, | СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС, | МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг | ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслуг.Номенклатура, | РеализацияТоваровУслуг.Коэффициент, | РеализацияТоваровУслуг.ЕдиницаИзмерения, | РеализацияТоваровУслуг.ЕдиницаИзмеренияМест, | РеализацияТоваровУслуг.ХарактеристикаНоменклатуры, | РеализацияТоваровУслуг.СерияНоменклатуры, | РеализацияТоваровУслуг.СтавкаНДС, | РеализацияТоваровУслуг.Цена, | РеализацияТоваровУслуг.ПроцентСкидкиНаценки, | РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РеализацияТоваровУслуг.Номенклатура КАК Номенклатура, | РеализацияТоваровУслуг.Количество * РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК МассаБрутто, | ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НоменклатурнаяГруппаЗатрат.Наименование КАК Строка(1000)) КАК ТоварНаименование, | РеализацияТоваровУслуг.Номенклатура." + ТоварКод + " КАК Артикул, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК БазоваяЕдиницаНаименование, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | NULL КАК ВидУпаковки, | NULL КАК Характеристика, | NULL КАК Серия, | ""Без НДС"" КАК СтавкаНДС, | РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена, | Ложь КАК ЕстьСкидкиПоСтроке, | РеализацияТоваровУслуг.Количество КАК Количество, | 0 КАК КоличествоМест, | РеализацияТоваровУслуг.Сумма * &Курс / &Кратность КАК Сумма, | 0 КАК СуммаНДС, | РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки, | 2 КАК Метка |ИЗ | Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг | |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО Метка ВОЗР, НомерСтроки ВОЗР | |"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); Если ПолучитьДанныеПечати = Истина Тогда Возврат ПолучитьДанныеДляТТНПриложение4(ЗапросТовары, Шапка); КонецЕсли; //Исправление ЗапросТовары.Свернуть("ТоварНаименование"); //Исправление ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("ТТН"); // Выводим общие реквизиты шапки ....... Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; |
|||
11
studentca
16.10.11
✎
12:45
|
Подскажите, пожалуйста.
|
|||
12
Мимохожий Однако
16.10.11
✎
12:51
|
Встань отладчиком на строку ЗапросТовары = Запрос.Выполнить().Выгрузить();
и посмотри на полученную выборку. Есть ли там колонка "Номенклатура"? |
|||
13
Tafa
16.10.11
✎
12:54
|
После ЗапросТовары.Свернуть("ТоварНаименование"); в таблице значений ЗапросТовары остается только колонка "ТоварНаименование".
|
|||
14
studentca
16.10.11
✎
12:57
|
Запрос.Выполнить - пишет значение"поле объекта не обнаружено", значение просто Выполнить - 1,1 ожидается выражение
|
|||
15
studentca
16.10.11
✎
12:59
|
а выражение "ЗапросТовары = Запрос.Выполнить().Выгрузить();" имеет значение 1,46 Ошибка в выражении
|
|||
16
studentca
16.10.11
✎
13:00
|
нет..в сообщении 9 есть пример..должны остаться все строки и столбцы, но в 6 столбце должна быть одна общая строка, в которой написано "Медикамент"
|
|||
17
Мимохожий Однако
16.10.11
✎
13:01
|
Попробуй
... Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.ТоварНаименование) Тогда |
|||
18
studentca
16.10.11
✎
13:02
|
если исправить в екселе то получится вот так
Артикул или номер по прейскуранту Коли- чество Цена руб. коп. Наименование продукции, товара (груза), ТУ, марка, размер, сорт 3 4 5 6 00000000006 1 400,000 8,20 медикамент 00000000007 1 400,000 8,00 00000000033 11 000,000 6,11 00000000060 3 600,000 6,00 00000000061 3 600,000 9,80 00000000091 9 800,000 15,50 00000000152 40 200,000 8,70 Итого 71 000,000 |
|||
19
Мимохожий Однако
16.10.11
✎
13:04
|
(18)Есть прямой вопрос: "Отладчик включать умеешь?" :-)
В чем связь таблицы экселя и темой ветки? |
|||
20
studentca
16.10.11
✎
13:04
|
Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
1.1 Ожидается выражение |
|||
21
studentca
16.10.11
✎
13:05
|
никакой, просто я пытаюсь показать как это должно выглядеть..
|
|||
22
Мимохожий Однако
16.10.11
✎
13:05
|
ответь на (19).
|
|||
23
studentca
16.10.11
✎
13:05
|
нагляднее может быть...
|
|||
24
Мимохожий Однако
16.10.11
✎
13:06
|
Отладчик включать умеешь?
|
|||
25
studentca
16.10.11
✎
13:06
|
я же говорю..для наглядности...может быть проще будет
|
|||
26
studentca
16.10.11
✎
13:07
|
ну да ставлю точку останова..потом начать отладку
|
|||
27
studentca
16.10.11
✎
13:08
|
и смотрю вычислить выражение..меня учили так
|
|||
28
Мимохожий Однако
16.10.11
✎
13:10
|
Когда открыла поле Вычислить вставь код ВыборкаСтрок и найди кнопочку для просмотра таблицы. Зеленого цвета. По этой кнопке откроешь получившуюся таблицу. В ней нет поля Номенклатура, к которому потом обращаешься.
|
|||
29
Мимохожий Однако
16.10.11
✎
13:14
|
Встань на строчку с выражением в окне отладки и нажми F2 (показать значения в одном окне)
|
|||
30
Мимохожий Однако
16.10.11
✎
13:14
|
*Показать значение в отдельном окне
|
|||
31
studentca
16.10.11
✎
13:16
|
Он переходит на строку
Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл // Выводим многострочную часть докмента ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; |
|||
32
Мимохожий Однако
16.10.11
✎
13:19
|
Повторяю :))
В окне отладчика в поле Выражение набери ВыборкаСтрок. Потом кнопка Рассчитать. Потом встать на строку в поле Результат и кнопка F2. Убедись, что есть поле Номенклатура. |
|||
33
studentca
16.10.11
✎
13:23
|
Не знаю почему, но у меня эта кнопка не действует сейчас
|
|||
34
studentca
16.10.11
✎
13:23
|
Свойство Значение Тип
ВыборкаСтрок.Номенклатура {(1)}: Значение не является значением объектного типа (Номенклатура) |
|||
35
studentca
16.10.11
✎
13:24
|
и все больше ничего не могу получить
|
|||
36
Мимохожий Однако
16.10.11
✎
13:24
|
Попробуй теперь набрать ЗапросТовары в окошке. Подсказку тебе дали в (13). Не может быть поля в этой коллекции
|
|||
37
studentca
16.10.11
✎
13:32
|
Нет у меня также не получается посмотреть апросТовары ..эта кнопка не действует.
|
|||
38
studentca
16.10.11
✎
13:35
|
вот в 13 сообщении мне писали "в таблице значений ЗапросТовары остается только колонка "ТоварНаименование". Но у меня должны быть все колонки...может быть я не правильно делаю...И мне нужно работать тогда не с ТЗ а с Табличной частью просто?Как Вы думаете?
|
|||
39
Мимохожий Однако
16.10.11
✎
13:36
|
Не повезло тебе... Читаешь через строчку.
Ладно. Попробуй ЗапросТовары.Свернуть("ТоварНаименование") заменить на ЗапросТовары.Свернуть("ТоварНаименование,Номенклатура") .. |
|||
40
БибиГон
16.10.11
✎
13:36
|
неверно сворачиваешь
|
|||
41
Мимохожий Однако
16.10.11
✎
13:39
|
(38) Когда таблица сворачивается, то поля, не указанные при свертке пропадают. Об этом в (13) и было написано.
Самый простой путь - это обратиться к табличной части документа, выгрузить в таблицу значений данные и добавить колонку "ТоварНаименование". Эту колонку заполнить из реквизита "Номенклатурная группа". Потом свернуть по полю "ТоварНаименование" с полями "Количество, Сумма". и вывести в свою табличку с расчетом цены. |
|||
42
studentca
16.10.11
✎
13:48
|
Вот
//Исправления создание временной таблицы и помещение туда данных МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ВременнаяТаблица |{ВЫБРАТЬ | Номенклатура.*} |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары"; Результат = Запрос.Выполнить(); //Исправление //Исправление помещаю номенклатурную группу Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура.НоменклатурнаяГруппаЗатрат.Наименование КАК ТоварНаименование |{ВЫБРАТЬ | ТоварНаименование.*} |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |{ГДЕ | РеализацияТоваровУслугТовары.Номенклатура.НоменклатурнаяГруппаЗатрат.*}"; Результат = Запрос.Выполнить().Выгрузить(); //Исправление //Исправление ЗапросТовары.Свернуть("ТоварНаименование", "Количество, Сумма"); //Исправление Но опять выдает ошибку {Обработка.ПечатьТТН.Форма.Форма.Форма(447)}: Поле объекта не обнаружено (Номенклатура) Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда |
|||
43
БибиГон
16.10.11
✎
13:49
|
ЗапросТовары.Свернуть("ТоварНаименование, Номенклатура", "Количество, Сумма");
|
|||
44
Мимохожий Однако
16.10.11
✎
13:49
|
:))) "ТоварНаименование", "Количество, Сумма" где здесь поле "Номенклатура"
|
|||
45
studentca
16.10.11
✎
13:51
|
теперь выдает такую ошибку
{Обработка.ПечатьТТН.Форма.Форма.Форма(487)}: Поле объекта не обнаружено (КоличествоМест) Мест = ВыборкаСтрок.КоличествоМест; |
|||
46
БибиГон
16.10.11
✎
13:53
|
не судьба :)
|
|||
47
Мимохожий Однако
16.10.11
✎
13:53
|
Попробуй вот так
ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа, СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма, СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &ТекДокумент СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура.НоменклатурнаяГруппа УПОРЯДОЧИТЬ ПО НоменклатураНоменклатурнаяГруппа |
|||
48
Мимохожий Однако
16.10.11
✎
13:55
|
Закомментируй все ошибочные строчки
|
|||
49
studentca
16.10.11
✎
14:01
|
Он выдает такую ошибку...ее я не могу закомментироавть...Мне нужно что бы он выдавал Сумму
{Обработка.ПечатьТТН.Форма.Форма.Форма(474)}: Поле объекта не обнаружено (СуммаНДС) СуммаСНДС = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2); |
|||
50
Мимохожий Однако
16.10.11
✎
14:36
|
Не можешь закомментировать или не хочешь? Добейся, чтобы у тебя получалась печатная форма без ошибок. А потом пойдешь по каждой закомментированной строке и добавишь правильный код.
|
|||
51
studentca
25.10.11
✎
20:39
|
спасибо всем за помощь...у меня все получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |