Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не отображается цена табличной части

Не отображается цена табличной части
Я
   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) Дык назначь цену то..
   Bon Jovi
 
2 - 05.10.20 - 13:21
(1) Документы были созданы кое как программно (до меня). Теперь мне нужно найти документы, в табличной части которых есть позиции с такими пустыми значениями в полях цен. Чтобы именно было видно (отображено в документы при открытии), что пустая строка.
   Ёпрст
 
3 - 05.10.20 - 13:22
(2) И ? Проблема то в чем ?
   Bon Jovi
 
4 - 05.10.20 - 13:36
(3) Почему в табличной части документа Установка цен номенклатуры у номенклатуры нет цены (пусто / по нулям), а если через запрос вывести все поля табличной части, то находится цена? Также если получить объект документа и обратиться в табличной части товары, то в ТЗ выводится такой же результат, как и через запрос.
Я же прошу ответить на вопрос, а не прошу решение как было предложено в (1) .
   Жан Пердежон
 
5 - 05.10.20 - 13:37
(4) там у документа еще табличные части есть, посмотри на них повнимательнее
   Bon Jovi
 
6 - 05.10.20 - 13:43
(5) Там есть ещё только табличная часть ТипыЦен, которая содержит три поля: ссылку на документ, номер строки и сами типы цен.
   вым
 
7 - 05.10.20 - 13:48
(4) посмотри не имя полей на форме, а что реально выводится, может не сами поля табличной части, а какие-то расчетные данные
   Bon Jovi
 
8 - 05.10.20 - 13:51
(7) Скорее всего вы правы. Я думал об этом тоже, но не понимаю, куда рыть, чтобы запросом получить такую информацию
   вым
 
9 - 05.10.20 - 13:55
(8) да, там на форме отражается таблица значений, в которую выводятся цены, устанавливаемые документом, а не просто напрямую данные табличной части
вот и смотри как они рассчитываются для вывода. все в коде
   Йохохо
 
10 - 05.10.20 - 13:57
(8) проверьте ТЧ ТипыЦен, по ней создаются колонки
   Bon Jovi
 
11 - 05.10.20 - 13:59
(10) не согласен. Так как иногда ТЧ ТипыЦен могут вообще отсутствовать в документах
   Bon Jovi
 
12 - 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) истину глаголишь
    Для Каждого СтрокаТипаЦен Из ТипыЦен Цикл
   Bon Jovi
 
15 - 05.10.20 - 14:03
(13) проверю...
   Йохохо
 
16 - 05.10.20 - 14:10
(12) запросу то все равно, а вот чтобы показать пользователю вам придется починить/перезаполнить в документах ТЧ ТипыЦен
   Bon Jovi
 
17 - 05.10.20 - 15:01
(16) к сожалению, вы правы. По крайней мере я уверен в этом на 99%
   Bon Jovi
 
18 - 06.10.20 - 12:08
Хочу попробовать кое что ещё Не подскажите, как найти все документы, в табличной части которых есть позиции, у которых не заполнены цены типах цен (пустые строки)? Мой метод не совсем походит:
[C]ВЫБРАТЬ
    УстановкаЦенНоменклатурыТовары.Ссылка КАК ДокументУстановкиЦен,
    УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен КАК ИндексСтрокиТаблицыЦен,
    УстановкаЦенНоменклатурыТовары.Номенклатура КАК Номенклатура
ИЗ
    Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары

СГРУППИРОВАТЬ ПО
    УстановкаЦенНоменклатурыТовары.Ссылка,
    УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен,
    УстановкаЦенНоменклатурыТовары.Номенклатура

ИМЕЮЩИЕ
    СУММА(УстановкаЦенНоменклатурыТовары.Цена) = 0

УПОРЯДОЧИТЬ ПО
    ИндексСтрокиТаблицыЦен УБЫВ
ИТОГИ ПО
    ДокументУстановкиЦен[/C]

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.