Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: УТ 10 добавить дополнительные реквизиты в список документа

Добрый день! Вот такая задача передо мной стоит:
Есть УТ 10.3, форма списка документа Реализация Товаров и Услуг. Нужно в эту форму добавить 2 столбца, содержащие дополнительные реквизиты каждого документа, хранящиеся соответственно в регистре сведений.
У самой таблицы документов, которая на форме, путь к данным (Данные) - ДокументСписок, являющийся реквизитом формы с типом ДокументСписок.РеализацияТоваровУслуг. Мне нужно как-то этот список получить в таблицу или в массив, не знаю, чтобы использовать его в запросе. Как это можно сделать?
Ответ: () () Огромное вам спасибо! Всё сработало!
Если кому пригодится, список документов формируется в процедуре СписокПриПолученииДанных в модуле формы списка документов. При этом  ОформлениеСтроки.Ячейки.Допреквизит1.УстановитьТекст(...) может устанавливать значение в столбцы не только содержащие строки. У меня было ОформлениеСтроки.Ячейки.Допреквизит1.УстановитьТекст(Истина)
Вопрос: Перехватить очистку фильтра на форме списка документов

1С 8.2 толстые формы. Как перехватить нажатие пользователем кнопки "Отключить отбор"? На форме списка документов.
Мне надо после отключения отбора программно наложить отбор связанный с правами данного пользователя.
Ответ:
Alex.Ru
1С 8.2 толстые формы. Как перехватить нажатие пользователем кнопки "Отключить отбор"? На форме списка документов.
Мне надо после отключения отбора программно наложить отбор связанный с правами данного пользователя.


Как вам уже написали RLS или "доступ на уровне записи" вам поможет.

Есть плохой вариант, в динамическом списке можно подкорректировать запрос, там чтобы принимал параметр разделяющий доступ.
Вопрос: Как реквизит формы списка документа получить в фоме нового документа? (УФ)

Хочу сделать следующее:
В в форме списка документов сделать реквизит ДатаНовогоДокумента
При нажатии кнопки Создать на форме списка открывается форма нового документа и дата должна быть как в реквизите формы списка ДатаНовогоДокумента.
Как передать значение реквизита из формы списка в форму документа?
Ответ: Вообще то,если есть родитель у формы,то можно ожидать у нее экспортные методы и свойства.
но,через параметры грамотнее.

а что пользователь в документе дату поменять не может?зачем это блэк джэк нужен?
Вопрос: Самописный отбор в списке документов

Люди помогите, ничего придумать не могу .. (((.
Итак, список документов Заказ покупателя.
При получении данных заполняется еще 2 поля в списке на форме - суммаОплаты и СуммаОтгрузки, их нет в документеСписке отбора. Нужно сделать, чтобы отображались документы, где СуммаОплаты>СуммыОтгрузки. В реквизит эти данные не запихаешь, чтобы сделать стандартный отбор (.

Я думала сначала по кнопке записать в список значений номера документов, где условие выполняется, а потом прописывать программно отбор, но так как список динамический наверно так нельзя сделать, по крайней мере я не нашла ... (. Потом была мысль на форме поставить флаг "Отобрать доки, где оплата>отгрузка" и при олучении данных проверять эту галку и ставить видимость строки = ложь в оформлении, но так тоже говорят не сделаешь, можно скрыть только ячейку ... (( Что делать???



// Выберем суммы оплат и отгрузок
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)

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

        ОформлениеСтроки.Ячейки.СуммаОплаты.Значение = СуммаОплаты;
        

        Если СуммаОплаты = ОформлениеСтроки.ДанныеСтроки.СуммаДокумента или СуммаОплаты = 0 Тогда
            ОформлениеСтроки.Ячейки.СуммаОплаты.ЦветФона = Новый Цвет;
        ИначеЕсли СуммаОплаты < ОформлениеСтроки.ДанныеСтроки.СуммаДокумента Тогда
            ОформлениеСтроки.Ячейки.СуммаОплаты.ЦветФона = Новый Цвет(255, 192, 192);
        Иначе
            ОформлениеСтроки.Ячейки.СуммаОплаты.ЦветФона = Новый Цвет(192, 255, 192);
        КонецЕсли;
        // отгрузки

        ОформлениеСтроки.Ячейки.СуммаОтгрузки.Значение = СуммаОтгрузки;
        Если СуммаОтгрузки = СуммаОплаты Тогда
            ОформлениеСтроки.Ячейки.СуммаОтгрузки.ЦветФона = Новый Цвет;
        ИначеЕсли СуммаОтгрузки > СуммаОплаты Тогда
            ОформлениеСтроки.Ячейки.СуммаОтгрузки.ЦветФона = Новый Цвет(255, 192, 192);
        Иначе
            ОформлениеСтроки.Ячейки.СуммаОтгрузки.ЦветФона = Новый Цвет(192, 255, 192);
        
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
Ответ: () мать, а мой Рг тебе зачем ?
ты пишешь свой запрос со своими условиями и получаешь отбор по документам
  |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ЕСТЬNULL(Взаиморасчеты.Сделка, Продажи.ЗаказПокупателя) КАК Ссылка,
    |    ЕСТЬNULL(Продажи.СтоимостьОборот, 0) КАК СуммаОтгрузки,
    |    ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовРасход, 0) КАК СуммаОплаты
    |ИЗ 
    |    РегистрНакопления.Продажи.Обороты(,,,ЗаказПокупателя В (&МассивЗаказов)) КАК Продажи
    |    ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(,,,Сделка В (&МассивЗаказов)) КАК Взаиморасчеты
    |    ПО Продажи.ЗаказПокупателя = Взаиморасчеты.Сделка");
    
    ЗапросОплатыОтгрузки.УстановитьПараметр("МассивЗаказов", МассивЗаказов);
ТЗ = ЗапросОплатыОтгрузки.Выполнить().Выгрузить();

МассивОтв=ТЗ.ВыгрузитьКолонку("ссылка");
        СписокОтв=Новый СписокЗначений;
        СписокОтв.ЗагрузитьЗначения(МассивОтв);
        Если  МассивОтв.Количество()>0 Тогда 
            ДокументСписок.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
            ДокументСписок.Отбор.Ссылка.Использование=Истина;
            ДокументСписок.Отбор.Ссылка.Значение=СписокОтв;
        КонецЕсли;
Вопрос: Сортировка в форме списка документов (обычные формы)

Может кто-то решал задачу сортировки в обычной форме списка документов не по реквизитам документа? Есть список документов в нем кроме реквизитов есть еще дополнительные колонки со значениями из регистра сведений, задача отсортировать по таким значениям
Ответ:
Есть ещё одно решение - использовать управляемую форму в обычном приложении и использовать её основной формой списка.
Там уже в динамическом списке можно произвольный запрос сделать, и сортировка по умолчанию будет доступна по твоим полям из другой таблицы.

Вложения:

  • Размер файла:
    268 КБ
    Просмотров:
    3
Вопрос: Как отобразить картинку статуса в форме списка документа

Подскажите пожалуйста, если возможность в форме списка документа отображать картинки, которые будут меняться в зависимости от значения реквизита документа. Например Статус = "Выполнен" тогда отображается одна картинка, Статус = "В процессе" другая.
Ответ: Можно.
1. Для этого необходимо в форме списка установить галочку произвольный запрос на динамический список (основной реквизит "Список") и дописать там условие вида
1C
1
ВЫБОР КОГДА Статус = &Выполнен ТОГДА 0 КОГДА ... ТОГДА 1 И Т.Д. КОНЕЦ КАК Картинка
2. Заготовить картинку, в ней должны быть размещены несколько вариантов картинок, идущие друг за другом (как кадры). Нумерация картинок начинается с 0 (то, что добавляли в запросе).
3. вынести Список на форму и реквизиту Картинка установить в свойстве Вид: Поле картинки.
Надеюсь мысль ясна ; )
Вопрос: Проблема с открытием формы списка документов.

В комплексной, той которая второй редакции, есть документ "Пересчет товаров". У документа есть форма списка, в которой устанавливается отбор по складу.
Замечательно. До недавнего времени не было необходимости ограничений доступа по складам. Соответственно у пользователя при открытии формы восстанавливалось значение отбора по складу, который у него был указан при закрытии формы. Но потом включили ограничение доступа по складам, и доступ к этому складу был ограничен. Теперь при попытке открытия формы списка документов выдается ошибка. Ошибка возникает при попытке получения значения реквизита склада, к которому у пользователя ограничен доступ. Если смотреть в отладчике - это видно. Но возникает вопрос. Через отладчик можно очистить значение, например, установить пустую ссылку. Тогда проверка проходит без ошибок и форма открывается. Но это если "под рукой" есть тот у кого есть доступ к конфигуратору и отладчику и есть соответствующие права. А что делать есть "под рукой" такого человека нет? Т.е. как выполнить очистку значений которые фиксируются при закрытии формы, и потом восстанавливаются при ее открытии из режима предприятия? Например пользователем с полными правами. Вопрос насущный, потому что сейчас настраиваются ограничения доступа к данным и в дальнейшем таких ситуаций предвидится не мало.
Кто-сталкивался с подобным?
Обработки из пакета инструмента разработчика БСП не помогают. Конфигурация типовая, запрет на изменение стоит.
Ответ: () Ну я бы не сказал что упорствую. Однако очистка кэша пользователя помогла. Хотя я не сильно на это надеялся.

Если следовать документации то
"Платформа использует следующие хранилища:
? Системное хранилище – в данное хранилище система сохраняет все возможные настройки, которые нужны для работы платформы. К данным настройкам относятся настройки размеров форм, настройки печати табличного документа и т. п. Полный перечень настроек, сохраняемых в системном хранилище, см. здесь. В качестве системного хранилища настроек всегда используется стандартное хранилище настроек. То есть данные системного хранилища всегда сохраняются в системной таблице информационной базы."
В перечне настроек, сохраняемых в системном хранилище присутствует
"Настройка: значения полей формы при закрытии
? Ключ объекта – является строковым значением, состоящим из полного имени формы и текста /ТекущиеДанные (/CurrentData)."

Конкретно для проблемной формы, в конфигурации не определено хранилище ее настроек, значит используется системное хранилище.
Работать с хранилищем из встроенного языка возможно. НО, поскольку в процессе работы у заказчика присутствуют программисты, и пользователей, которым критично сохранение текущих настроек 3-4 человека, то проще в процессе настройки и тестирования очистить значение через отладчик. За два дня такой способ использовали несколько раз. Писать внешние обработки для работы с системным хранилищем - зря тратить время. В ДАННОМ СЛУЧАЕ.

Вопрос, изначально был задан с целью узнать сталкивался кто с аналогичной ситуацией и как избежать ее используя уже возможно существующие инструменты.
Бросаться по каждой проблеме сразу в разработку чего-либо - не всегда оправдано. В ДАННОМ СЛУЧАЕ, проблема решилась двумя путями. Для тех пользователей, кому не критично сохранение настроек форм - просто очистили их кэш. Для тех кому критично - использовали отладчик.

Разбираться почему помогла очистка кэша, при условии что настройки должны храниться в системном хранилище - сейчас нет времени.

Всем спасибо.

PS. Персонально для rudnitskij - "не судите, да не судимы будете" (с)
Вопрос: Внешняя обработка и форма списка документа

Здравствуйте!
Подскажите, можно ли из внешней обработки открыть форму списка документа и как?
Ответ:
Ты хочешь открыть сам документ из списка а прав на открытие нет?
Вопрос: Как сделать, чтобы реквизит формы отображался в списке документов (УФ)

Конфигурация Бухгалтерия 3.0.
Есть такой документ Корректировка поступления, в нем  реквизит формы НадписьСчетФактура, где отражается дата и номер сч-ф, введенного на основании этой Корректировки.
Как вывести этот реквизит НадписьСчетФактура в список документов? Никак не получается..((
Ответ: () нет, отчет здесь не пойдет. Нужно именно в списке, чтобы бухгалтер занося эти Корректировки поступления видела по каким счетам фактурам они уже разнесены. Счет фактура подчиненный Корректировке.
Вопрос: Отбор по товару в Форме списка документов

Как грамотно сделать отбор по конкретной номенклатурной позиции в форме списка документа, например, РеализацияТоваровИУслуг?Хочу видеть в этой форме только те документы , в которых присутствует выбранная номенклатурная позиция.
Ответ:
Спасибо. Мне помогло понять как установить отбор документов..