|
Не отображается цена табличной части | ☑ | ||
---|---|---|---|---|
0
Bon Jovi
05.10.20
✎
12:59
|
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
Добрый день. Подскажите пожалуйста в следующем. Почему в табличной части документа Установка цен номенклатуры у номенклатуры нет цены (пусто / по нулям), а если через запрос вывести все поля табличной части, то находится цена? Также если получить объект документа и обратиться в табличной части товары, то в ТЗ выводится такой же результат, как и через запрос. Например: ВЫБРАТЬ
*Не получается загрузить фото. https://ibb.co/LNfN1Dj |
|||
1
Ёпрст
05.10.20
✎
13:18
|
(0) Дык назначь цену то..
|
|||
2
Bon Jovi
05.10.20
✎
13:21
|
(1) Документы были созданы кое как программно (до меня). Теперь мне нужно найти документы, в табличной части которых есть позиции с такими пустыми значениями в полях цен. Чтобы именно было видно (отображено в документы при открытии), что пустая строка.
|
|||
3
Ёпрст
05.10.20
✎
13:22
|
(2) И ? Проблема то в чем ?
|
|||
4
Bon Jovi
05.10.20
✎
13:36
|
(3) Почему в табличной части документа Установка цен номенклатуры у номенклатуры нет цены (пусто / по нулям), а если через запрос вывести все поля табличной части, то находится цена? Также если получить объект документа и обратиться в табличной части товары, то в ТЗ выводится такой же результат, как и через запрос.
Я же прошу ответить на вопрос, а не прошу решение как было предложено в (1) . |
|||
5
Жан Пердежон
05.10.20
✎
13:37
|
(4) там у документа еще табличные части есть, посмотри на них повнимательнее
|
|||
6
Bon Jovi
05.10.20
✎
13:43
|
(5) Там есть ещё только табличная часть ТипыЦен, которая содержит три поля: ссылку на документ, номер строки и сами типы цен.
|
|||
7
вым
05.10.20
✎
13:48
|
(4) посмотри не имя полей на форме, а что реально выводится, может не сами поля табличной части, а какие-то расчетные данные
|
|||
8
Bon Jovi
05.10.20
✎
13:51
|
(7) Скорее всего вы правы. Я думал об этом тоже, но не понимаю, куда рыть, чтобы запросом получить такую информацию
|
|||
9
вым
05.10.20
✎
13:55
|
(8) да, там на форме отражается таблица значений, в которую выводятся цены, устанавливаемые документом, а не просто напрямую данные табличной части
вот и смотри как они рассчитываются для вывода. все в коде |
|||
10
Йохохо
05.10.20
✎
13:57
|
(8) проверьте ТЧ ТипыЦен, по ней создаются колонки
|
|||
11
Bon Jovi
05.10.20
✎
13:59
|
(10) не согласен. Так как иногда ТЧ ТипыЦен могут вообще отсутствовать в документах
|
|||
12
Bon Jovi
05.10.20
✎
14:00
|
(9) то есть, при открытии формы документа, происходит вычисления и заполнения полей табличной части товары... Плохо, потому что в таком случае, я понятия не имею как из тысяч документов найти те, в которых таким образом заполняются тч(
|
|||
13
вым
05.10.20
✎
14:01
|
// Процедура устанавливает колонки табличной часи в требуемом порядке,
// добавляет недостающие колонки, убирает ненужные. // Процедура ОбновитьСоставКолонок() // Надо расположить все нужные колонки в правильном порядке. // Сначала должна идти колонка "Код". КолонкиТаблицыЦен = ТаблицаЦен.Колонки; ОчереднойНомерКолонки = 1; ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Код"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Артикул"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Номенклатура"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); ТекущаяКолонка = КолонкиТаблицыЦен.Найти("ХарактеристикаНоменклатуры"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл Если НЕ ЗначениеЗаполнено(СтрокаТипаЦен.ТипЦен) Тогда Продолжить; КонецЕсли; НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТипаЦен.ТипЦен]; Если НомерСоответствияТекущейКолонки = Неопределено Тогда НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен.Количество(); мСоответствиеТиповЦен.Вставить(СтрокаТипаЦен.ТипЦен, мСоответствиеТиповЦен.Количество()); КонецЕсли; // Цена. ТекущаяКолонка = КолонкиТаблицыЦен.Найти("цена" + НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "цена" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2, ДопустимыйЗнак.Неотрицательный), СокрЛП(СтрокаТипаЦен.ТипЦен), 10); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; // Способ расчета. ТекущаяКолонка = КолонкиТаблицыЦен.Найти("СпособРасчета" + НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "СпособРасчета" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("ПеречислениеСсылка.СпособыРасчетаЦены"), "Способ расчета", 8); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; // Валюта. ТекущаяКолонка = КолонкиТаблицыЦен.Найти("валюта" + НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "валюта" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.Валюты"), "Валюта", 8); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; // Единица измерения. ТекущаяКолонка = КолонкиТаблицыЦен.Найти("единица" + НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "единица"+НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"), "Единица", 8); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; // Процент скидки/наценки. ТекущаяКолонка = КолонкиТаблицыЦен.Найти("процент" + НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "процент"+НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2), "% скидки (наценки)", 8); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; КонецЦикла; // Все, что за пределами, надо удалить. Для НомерУдаляемойКолонки = ОчереднойНомерКолонки По КолонкиТаблицыЦен.Количество() - 1 Цикл КолонкиТаблицыЦен.Удалить(ОчереднойНомерКолонки); КонецЦикла; ЭлементыФормы.ТаблицаЦен.СоздатьКолонки(); // Установим недостающие параметры. УстановитьНедостающиеПараметры(); КонецПроцедуры // ОбновитьСоставКолонок() |
|||
14
вым
05.10.20
✎
14:02
|
(10) истину глаголишь
Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл |
|||
15
Bon Jovi
05.10.20
✎
14:03
|
(13) проверю...
|
|||
16
Йохохо
05.10.20
✎
14:10
|
(12) запросу то все равно, а вот чтобы показать пользователю вам придется починить/перезаполнить в документах ТЧ ТипыЦен
|
|||
17
Bon Jovi
05.10.20
✎
15:01
|
(16) к сожалению, вы правы. По крайней мере я уверен в этом на 99%
|
|||
18
Bon Jovi
06.10.20
✎
12:08
|
Хочу попробовать кое что ещё Не подскажите, как найти все документы, в табличной части которых есть позиции, у которых не заполнены цены типах цен (пустые строки)? Мой метод не совсем походит:
[C]ВЫБРАТЬ УстановкаЦенНоменклатурыТовары.Ссылка КАК ДокументУстановкиЦен, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен КАК ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура КАК Номенклатура ИЗ Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары СГРУППИРОВАТЬ ПО УстановкаЦенНоменклатурыТовары.Ссылка, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура ИМЕЮЩИЕ СУММА(УстановкаЦенНоменклатурыТовары.Цена) = 0 УПОРЯДОЧИТЬ ПО ИндексСтрокиТаблицыЦен УБЫВ ИТОГИ ПО ДокументУстановкиЦен[/C] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |