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

как выбрать валюты?

Автор sali, 29 мая 2025, 11:13

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

sali

antoneus,
Цитата: antoneus от 30 мая 2025, 10:26Потому что в D2 находится подпись бухгалтера а в D3 подпись менеджера?
да
Цитата: antoneus от 30 мая 2025, 10:26А при выводе ты распихиваешь картинки наоборот?
распихиваю я их также как и раньше, 0 индекс - бухгалтер , 1- менеджер. если эту хрен никак не подправлю сделаю обратку.  спасибо вам :ehtwj:

antoneus

Вот зачем врать?

Цитата: sali от 30 мая 2025, 07:33ОбластьМакета.Рисунки.D3.Картинка = ?(Картинки[0] = Null ИЛИ Картинки[0] = Справочники.ФизическиеЛицаПрисоединенныеФайлы.ПустаяСсылка(), Новый Картинка(), Новый Картинка(Картинки[0].Получить()));
ОбластьМакета.Рисунки.D2.Картинка = ?(Картинки[1] = Null ИЛИ Картинки[1] = Справочники.ФизическиеЛицаПрисоединенныеФайлы.ПустаяСсылка(), Новый Картинка(), Новый Картинка(Картинки[1].Получить()));

sali

antoneus, клянусь я там лишь индекс дописывал. у меня даже области картинки этих не D2 и D3, а реальные D21 и D22, а в отладке стояли  D2 и D3. Потому что произошло замещение или перекосило печатку , если вы помните тоже мучал вас почему не отображалась картинка . Возможно , не буду спорить, я досконально не просмотрел отладчик и там где-то переворот произошел. хотя наименование картинок приходило верное по владельцу. у бухгалтера - "снимок 311", у менеджера - " снимок_309"

antoneus

Ну и как реальный код выглядит?

sali

Для Каждого ИмяОбласти Из МассивОбластейМакета Цикл
ОбластьМакета = Макет.ПолучитьОбласть(ИмяОбласти);
Если ИмяОбласти = "СотрудникиИПодписи" Тогда       
Картинки =  ПрисоединенныеФайлыФизЛица(Шапка); 
ОбластьМакета.Рисунки.D2.Картинка = ?(Картинки[0] = Null ИЛИ Картинки[0] = Справочники.ФизическиеЛицаПрисоединенныеФайлы.ПустаяСсылка(), Новый Картинка(), Новый Картинка(Картинки[0].Получить()));
ОбластьМакета.Рисунки.D3.Картинка = ?(Картинки[1] = Null ИЛИ Картинки[1] = Справочники.ФизическиеЛицаПрисоединенныеФайлы.ПустаяСсылка(), Новый Картинка(), Новый Картинка(Картинки[1].Получить())); 
конецесли;

Функция ПрисоединенныеФайлыФизЛица(Шапка) 

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


ВладельцыФайла = Новый Массив;
    ВладельцыФайла.Добавить(Шапка.ПодписьБухгалтера);
    ВладельцыФайла.Добавить(Шапка.ПодписьМенеджера);
    Запрос.УстановитьПараметр("ВладельцыФайла", ВладельцыФайла);
   
    РезультатЗапроса = Запрос.Выполнить();
   
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();   
    МассивВыбора = Новый Массив;         
Для каждого ВладелецФайла из ВладельцыФайла Цикл
        Если ВыборкаДетальныеЗаписи.НайтиСледующий(Новый Структура("ВладелецФайла", ВладелецФайла)) и не ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла = null Тогда
            МассивВыбора.Добавить(ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.Ссылка.ДвоичныеДанные);//ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.ДвоичныеДанные);
ВыборкаДетальныеЗаписи.Сбросить();
        Иначе
            МассивВыбора.Добавить(Справочники.ФизическиеЛицаПрисоединенныеФайлы.ПустаяСсылка());
        КонецЕсли;
КонецЦикла; 
возврат МассивВыбора;

КонецФункции
сделал обратку

Afinogen

я чет потерялся я в логике, откуда справочник физ лица взялся?

если нужны определенные окончания счетов то что мешает проверять номерсчета на подобие?

типа такого
|ГДЕ БанковскийСчет.Номерсчета ПОДОБНО "%1234"
|ИЛИ БанковскийСчет.Номерсчета ПОДОБНО "%567"
и т.д.

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

что то по типу такого

Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ РС КАК РС");
МассивШаблон = Новый Массив;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
МассивШаблон.Добавить("БанковскийСчет.Номерсчета ПОДОБНО ""%"""+Выборка.хвост);
Конеццикла;

Запрос = Новый Запрос(Телозапроса
|ГДЕ &условие");

Запрос.текст = СтрЗаменить(Запрос.Текст,"&Условие",СтрСоединить(МассивШаблон," ИЛИ ");
все..так вы в теле основного запроса засунете все ваши хвосты   

sali

Цитата: Afinogen от 01 июн 2025, 13:33если нужны определенные окончания счетов то что мешает проверять номерсчета на подобие?

типа такого
Код Выделить Развернуть
|ГДЕ БанковскийСчет.Номерсчета ПОДОБНО "%1234"
|ИЛИ БанковскийСчет.Номерсчета ПОДОБНО "%567"
тоже попались над этим. не поверите может , но с этого все и начиналось, однако строка ПОДОБНО "%1234" может выдать не желанный результат ведь эти 4 цифры стоят в конце, а результатом вывода может быть когда нашелся код с ними , но в середине или не найтись вообще . потому что какой-то мудак в номере счета дописал запятую и указал валюту :)

Afinogen

 B) вот по этому и говорю что нужен регистр сведений куда вы будете заносить хвосты, ну найдется кто запишет "1234,", добавите 1 запись в РС и все будет работать

sali

Afinogen, да ладно уже конкретно прописал какие счета должны выводится . делать новый регистр ка-то не очень хотелось

Afinogen

И что? завтра у вас появится еще какой новый счет и вы будете его захардкодивать?

Теги:

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

Рейтинг@Mail.ru

Поиск