Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 сен 2025, 00:27

ссылка.*

Автор sali, 01 сен 2025, 12:56

0 Пользователей и 1 гость просматривают эту тему.

Максим75

sali, потому что ВНИМАТЕЛЬНО изучите как работать с универсальной коллекцией СписокЗначений. Особенно что является значением списка, а что представлением списка. Это разное.

sali

Максим75, у меня на форме 2 таких списка с документами и контрагентом , конечно с контрагентом легче просто 3 строки
ДобавляемыеРеквизиты = Новый Массив;   
ДобавляемыеРеквизиты.Добавить(Тип("СправочникСсылка.Контрагенты"));   
ПредставлениеКонтрагента.ТипЗначения = Новый ОписаниеТипов(ДобавляемыеРеквизиты);
и все работает, с СЗ для документов как для контрагента - вожусь, смотрю, по-разному делаю результат один получаю. надо по-другому добавлять документы?

Максим75

sali, еще раз:

Если ПредставлениеДокумента.НайтиПоЗначению("Приходная накладная") и т.д.
так работать не будет, потому что "Приходная накладная" - это НЕ ЗНАЧЕНИЕ, это представление. Это разное, как белое и мягкое. Понимаете?

sali

Цитата: Максим75 от 03 сен 2025, 09:39Это разное, как белое и мягкое. Понимаете?
полностью прописывать ? - ПредставлениеДокумента.НайтиПоЗначению("ДокументСсылка.ПриходнаяНакладная")

sali


Максим75

sali, да просто список документов заполнить понятными значениями.
вот не надо туда тулить Тип("ДокументСсылка.РасходнаяНакладная"), а добавьте просто "РасходнаяНакладна" и тогда удобно будет искать по значению

sali

Максим75, скажите пожалуйста почему необязательные параметры не работают
ВЫБРАТЬ
РасходнаяНакладная.Ссылка КАК Ссылка,
РасходнаяНакладная.Контрагент КАК Контрагент
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная
ГДЕ
НЕ РасходнаяНакладная.ПометкаУдаления
И РасходнаяНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И (РасходнаяНакладная.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю)
ИЛИ РасходнаяНакладная.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику))
{ГДЕ
ВЫБОР
КОГДА &ЕстьКонтрагент
ТОГДА РасходнаяНакладная.Контрагент В (&Контрагенты)
ИНАЧЕ ЛОЖЬ
КОНЕЦ }

Максим75

sali, потому как сие работает только для скд, и за это я Вам писал, но кто же читает то...

sali

Максим75, бля..ха

sali

Максим75, а можете сказать почему текст запроса основан на пазле из всех запросов не отрабатывает так как это делается прошлым запросом
&НаСервере
Процедура ЗаполнитьДокументыСообщенияНаСервере() Экспорт

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

ПолучитьКонтрагента = ПредставлениеКонтрагента.ВыгрузитьЗначения();

Запрос.УстановитьПараметр("НачалоПериода", Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", ?(Период.ДатаОкончания = Дата(1,1,1), Дата(3999,12,31), КонецДня(Период.ДатаОкончания)));     
Запрос.УстановитьПараметр("ЕстьКонтрагент", ИСТИНА);
Запрос.УстановитьПараметр("Контрагенты", ПолучитьКонтрагента);

ДокументыСообщения.Загрузить(Запрос.Выполнить().Выгрузить());

ДозаполнитьДокументыСообщенияВыгрузка();
КонецПроцедуры


&НаСервере
Функция СформироватьТекстЗапроса()
ТекстЗапроса = "";       
Если ПредставлениеВидаДокумента.НайтиПоЗначению("РасходнаяНакладная") <> Неопределено Тогда
ТекстЗапроса = ТекстЗапроса +
"ВЫБРАТЬ
| РасходнаяНакладная.Ссылка КАК Документ,
| РасходнаяНакладная.Контрагент КАК Контрагент
|ИЗ
| Документ.РасходнаяНакладная КАК РасходнаяНакладная
|ГДЕ
| НЕ РасходнаяНакладная.ПометкаУдаления
| И РасходнаяНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И ВЫБОР
| КОГДА &ЕстьКонтрагент
| ТОГДА РасходнаяНакладная.Контрагент в (&Контрагенты)
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И (РасходнаяНакладная.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю)
| ИЛИ РасходнаяНакладная.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику))";
конецесли;

Если ПредставлениеВидаДокумента.НайтиПоЗначению("ПриходнаяНакладная") <> Неопределено Тогда   
Если ТекстЗапроса <> "" Тогда
ТекстЗапроса =  ТекстЗапроса +  " ОБЪЕДИНИТЬ ВСЕ ";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + 
"ВЫБРАТЬ
| ПриходнаяНакладная.Ссылка КАК Документ,
| ПриходнаяНакладная.Контрагент КАК Контрагент
|ИЗ
| Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
|ГДЕ
| ПриходнаяНакладная.Проведен
| И ПриходнаяНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И ВЫБОР
| КОГДА &ЕстьКонтрагент
| ТОГДА ПриходнаяНакладная.Контрагент в (&Контрагенты)
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ";
КонецЕсли;
...
Возврат ТекстЗапроса;

КонецФункции



Теги:

Похожие темы (4)

Рейтинг@Mail.ru

Поиск