Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



8 страниц V   1 2 3 > » 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 18:38


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


AnryMc @ Сегодня, 18:19 * ,
Что то пошло не так. Последний алгоритм находит существенно меньше товаров. Видимо последнюю запись после "/" не видит. И не учтен вариант, когда "/" нет вообще. Что то придумаю smile.gif
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178502 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 17:02


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


AnryMc @ Сегодня, 17:51 * ,
Звучит отлично. Немного позже попробую. Спасибо. Вопрос только в том насколько быстрее будет smile.gif
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178500 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 16:30


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


AnryMc @ Сегодня, 17:20 * ,
Нет, к несчастью. Он может быть вида %X%/%Y%/%Z%, может вида ХХХХХ, может ХХХХХ-12, может %X%/%Y%. Я не вижу вариантов как по другому, кроме посимвольно. При том, что если в артикуле есть "-", к примеру МММММ-12/ООООО58 артикулы брать МММММ и ООООО58.

Сейчас так.
Для каждого Зап Из ТЗ Цикл
        Зап.Артикул = Зап.Номенклатура.Артикул;
        СтрокаАртикулы = "";
        Если Зап.Артикул <> "" Тогда
            Если Найти(Зап.Артикул,"-") > 0 ИЛИ Найти(Зап.Артикул,"/") > 0 Тогда
                СтрокаАртикулы = "";
                ПредСимвол = 0;
                Для Инд = 1 По СтрДлина(Зап.Артикул) Цикл
                    Симв = Сред(Зап.Артикул,Инд,1);
                    Если Симв = "/" ТОгда
                        Если ПредСимвол <> -1 Тогда
                            СтрокаАртикулы = СтрокаАртикулы + Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол)+" ";
                            мАртикулы.Добавить(Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол));
                            НовЗапАрт = тАрт.Добавить();
                            НовЗапАрт.Номенклатура = Зап.Номенклатура;
                            НовЗапАрт.Артикул = Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол);
                            ПредСимвол = Инд;
                        Иначе    
                            ПредСимвол = Инд;
                        КонецЕсли;    
                    КонецЕсли;
                    Если Симв = "-" Тогда
                        СтрокаАртикулы = СтрокаАртикулы + Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол)+" ";
                        мАртикулы.Добавить(Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол));
                        НовЗапАрт = тАрт.Добавить();
                        НовЗапАрт.Номенклатура = Зап.Номенклатура;
                        НовЗапАрт.Артикул = Сред(Зап.Артикул,ПредСимвол+1,Инд - 1 - ПредСимвол);
                        ПредСимвол = -1;
                    КонецЕсли;
                КонецЦикла;
                Если ПредСимвол <> -1 Тогда
                    СтрокаАртикулы = СтрокаАртикулы + Сред(Зап.Артикул,ПредСимвол+1,СтрДлина(Зап.Артикул)-ПредСимвол)+" ";
                    мАртикулы.Добавить(Сред(Зап.Артикул,ПредСимвол+1,СтрДлина(Зап.Артикул)-ПредСимвол));
                    НовЗапАрт = тАрт.Добавить();
                    НовЗапАрт.Номенклатура = Зап.Номенклатура;
                    НовЗапАрт.Артикул = Сред(Зап.Артикул,ПредСимвол+1,СтрДлина(Зап.Артикул)-ПредСимвол);
                КонецЕсли;
            Иначе    
                СтрокаАртикулы = Зап.Артикул;
                мАртикулы.Добавить(Зап.Артикул);
                НовЗапАрт = тАрт.Добавить();
                НовЗапАрт.Номенклатура = Зап.Номенклатура;
                НовЗапАрт.Артикул = Зап.Артикул;
            КонецЕсли;
            Зап.Рез = СтрокаАртикулы;
        КонецЕсли;
    КонецЦикла;


Talkman @ Сегодня, 17:26 * ,
1. Если нет "-" и "/" берем весь артикул.
2. Парсим посимвольно. Если есть "-" - берем артикул до"-" от предыдущего начального символа. Запоминаем что следующая "/" будет начальной.
3. Если "/", тогда проверяем, не было ли раньше "-". Если не было - берем артикул от начального символа до "/". Ставим нач символ на позицию "/". Если "-" был, просто ставим нач. символ на позицию "/".
и т.д
4. -1 - показатель, что артикул уже взят и его еще раз брать не нужно.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178498 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 16:05


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


AnryMc @ Сегодня, 16:29 * ,
Ну, фиксированное оно условно только. Размерностью массива артикулов...

ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток,
   ТоварыНаСкладахОстатки.Номенклатура.Артикул
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, (Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов0+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов1+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов2+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов3+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов4+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов5+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов6+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов7+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов8+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов9+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов10+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов11+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов12+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов13+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов14+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов15+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов16+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов17+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов18+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов19+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов20+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов21+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов22+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов23+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов24+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов25+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов26+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов27+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов28+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов29+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов30+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов31+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов32+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов33+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов34+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов35+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов36+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов37+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов38+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов39+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов40+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов41+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов42+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов43+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов44+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов45+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов46+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов47+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов48+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов49+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов50+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов51+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов52+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов53+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов54+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов55+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов56+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов57+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов58+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов59+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов60+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов61+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов62+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов63+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов64+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов65+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов66+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов67+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов68+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов69+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов70+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов71+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов72+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов73+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов74+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов75+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов76+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов77+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов78+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов79+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов80+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов81+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов82+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов83+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов84+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов85+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов86+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов87+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов88+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов89+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов90+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов91+ "%"
ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов92+ "%" ИЛИ Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов93+ "%") И НЕ Номенклатура.Ссылка в (&МТов)) КАК ТоварыНаСкладахОстатки



Вот так вроде существенно быстрее. Извиняюсь за формат листинга.

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


Теперь бы еще парсинг артикулов для товаров из документа ускорить...
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178496 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 15:17


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


AnryMc @ Сегодня, 15:55 * ,
Вот я как раз про это. Как работает установить параметр? Если в запросе всегда мАртикулов и он устанавливается в цикле, не будет такого, что на последней итерации циклом параметр мАртикулов установиться значением последней итерации для всех(!) подзапросов?

Цитата(AnryMc @ 26.02.24, 15:55) *
Мне больще нравится:
Номенклатура.Артику ПОДОБНО &мАртикулов

Запрос.УстановитьПараметр("мАртикулов", "%"+СокрЛП(мАртикулов[Ном])+"%");


Параметр передается 33333. Артикул 33333/2222/7777.
33333/2222/7777 ПОДОБНО "%"+33333+"%" разве сработает?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178494 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 15:12


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


nik389 @ Сегодня, 15:55 * ,
Воно то так і є, тільки проблема в користувачах, які давним давно забили вводити новий артикул через табличну частину. Їм мабудь зручніше зламати структуру даних чим вводити все по правилам.

AnryMc @ Сегодня, 15:55 * ,
Это я понял. Я о том, что в листинге запроса я сделал
ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток,
   ТоварыНаСкладахОстатки.Номенклатура.Артикул
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов0 + "%" И НЕ Номенклатура.Ссылка в (&МТов)) КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ
ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток,
   ТоварыНаСкладахОстатки.Номенклатура.Артикул
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов1+ "%" И НЕ Номенклатура.Ссылка в (&МТов)) КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ
ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток,
   ТоварыНаСкладахОстатки.Номенклатура.Артикул
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов2+ "%" И НЕ Номенклатура.Ссылка в (&МТов)) КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ
ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток,
   ТоварыНаСкладахОстатки.Номенклатура.Артикул
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артикул ПОДОБНО "%" + &мАртикулов3+ "%" И НЕ Номенклатура.Ссылка в (&МТов)) КАК ТоварыНаСкладахОстатки


И вносил параметр как
Запрос.УстановитьПараметр("мАртикулов"+Ном, мАртикулы[Ном]);


Ну и добавил условие, чтобы найденые товары не являлись товарами из документа. Вроде работает, но не быстро... И никак же не ускоришь...
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178492 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 14:50


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


|   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артику ПОДОБНО ""%"" + мАртикулов + ""%"") КАК ТоварыНаСкладахОстатки";


Данная строка в цикле. Я правильно понимаю, что параметр в цикле нужно номеровать по текущему "Ном"? Или запрос при выполнении установки параметра не будет трогать параметры установленые ранее?

Talkman @ Сегодня, 15:49 * ,
|   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артику ПОДОБНО ""%"" + мАртикулов"+Ном+" + ""%"") КАК ТоварыНаСкладахОстатки";

?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178489 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 14:31


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Цитата(AnryMc @ 26.02.24, 15:20) *
КолвоЭл = мАртикулы .Количество;

Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |   ТоварыНаСкладахОстатки.Номенклатура,
        |   ТоварыНаСкладахОстатки.КоличествоОстаток,
        |   ТоварыНаСкладахОстатки.Номенклатура.Артикул
        |ИЗ
        |   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артику ПОДОБНО ""%"" + мАртикулов + ""%"") КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("мАртикулов", мАртикулы[0]);

Ном= 1;

Пока Ном <= КолвоЭл  Цикл

Запрос.Текст = Запрос.Текст +
        "ОБЪЕДИНИТЬ
        |ВЫБРАТЬ
        |   ТоварыНаСкладахОстатки.Номенклатура,
        |   ТоварыНаСкладахОстатки.КоличествоОстаток,
        |   ТоварыНаСкладахОстатки.Номенклатура.Артикул
        |ИЗ
        |   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура.Артику ПОДОБНО ""%"" + мАртикулов + ""%"") КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("мАртикулов", мАртикулы[Ном ]);

Ном = Ном + 1;

КонецЦикла;
    
    Запрос.УстановитьПараметр("Дата", Док.Дата);



Выглядит изящно. Пробую. Спасибо.

Talkman @ Сегодня, 15:26 * ,
Вопрос к параметру запроса мАртикулов. Он при выполнении запроса не будет иметь значение последнего элемента для всех подзапросов? Его в тексте запроса нумеровать не нужно?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178487 · Ответов: 19 · Просмотров: 226
 

>  Поиск подобных товаров по артикулам из перечня артикулов
Talkman
Отправлено: 26.02.24, 13:47


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Добрый день. Нужен совет. Есть документ. В документе в ТЧ список товаров. Каждый товар имеет реквизит артикул типа ххххх/уууууу/сссссс. Тип строка, в значении реквизита несколько разных артикула разделенные слешем. Артикул может быть и один, тогда слеш отсутствует. Задача. При сохранении документа проверять есть ли на остатке товары с пересекающимися артикулами. Например, если в документе есть товар с артикулом 2222/5555 и на остатке в базе есть товар с артикулом 5555/7777, то это нужно сообщить.
Остановился на том, что заполнил массив артикулами из документа. ххххх/уууууу/сссссс = ххххх, уууууу, сссссс , а дальше стопорнулся. Как сделать в запросе, чтобы массив значений проверялся на подобие реквизита артикула?

 Запрос.Текст = 
        "ВЫБРАТЬ
        |   ТоварыНаСкладахОстатки.Номенклатура,
        |   ТоварыНаСкладахОстатки.КоличествоОстаток,
        |   ТоварыНаСкладахОстатки.Номенклатура.Артикул
        |ИЗ
        |   РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, &мАртикулов ПОДОБНО ""%"" + Номенклатура.Артикул + ""%"") КАК ТоварыНаСкладахОстатки";
    
    Запрос.УстановитьПараметр("Дата", Док.Дата);
    Запрос.УстановитьПараметр("мАртикулов", мАртикулы);


Это же явный бред, да?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #178485 · Ответов: 19 · Просмотров: 226
 

>  Установка новой версии платформы 1С. Работоспособность базы.
Talkman
Отправлено: 15.12.23, 10:41


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


denis84 @ Сегодня, 11:32 * ,
Я планую копію БД для себе для розробки зробити. Користувач у неї тільки я буду. Потім з неї вигружати конфу в файл для оновлення в основну. Наче має бути без проблем, але на всяк випадок вирішив запитати у людей, які стикалися з такою ситуацією. Вона наче відносно штатна, та все таки.
  Форум: Вся 1С · Просмотр сообщения: #177996 · Ответов: 3 · Просмотров: 215
 

>  Установка новой версии платформы 1С. Работоспособность базы.
Talkman
Отправлено: 15.12.23, 10:08


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Добрый день. Есть база УТ 2.3 обычные формы, модифицированная под тек. задачи предприятия. Сейчас крутится в клиент серверном режиме на серверной ОС. Платформа 1С версии 8.3.16. Хочу развернуть копию на вин 11 тоже в клиент серверном режиме. Прочитал, что 1С поддерживает вин 11 только с версии 8.3.20. Подскажите, есть ли какие то подводные камни в развертывании старых конфигураций на обычных формах на новых версиях платформ 1С. Заранее спасибо.
  Форум: Вся 1С · Просмотр сообщения: #177992 · Ответов: 3 · Просмотров: 215
 

>  Заняты все кода номенклатуры
Talkman
Отправлено: 24.10.23, 13:39


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Была похожая проблема. Возникает, когда код текстовый и расширяют разрядность кода, когда уже пошла нумерация без перенумерации. Посмотрите, после последнего разряда в коде идут пробелы? Если идут - нужна перенумерация. Я бы на верочку сделал бы хенд мейд обработкой.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177855 · Ответов: 7 · Просмотров: 903
 

>  Реалізація дабл кліка на запису в ТЗ
Talkman
Отправлено: 14.09.23, 10:50


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Talkman @ Вчера, 16:06 * ,
Вирішено. Трохи не туди поліз зпочатку. Треба лізти в обробник таблиці значень, а не елемента введеня колонки ТЗ. Обробник "Выбор" + прапорець "только просмотр" на колонку "Номенклатура". Дякую за увагу smile.gif
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177704 · Ответов: 1 · Просмотров: 637
 

>  Реалізація дабл кліка на запису в ТЗ
Talkman
Отправлено: 13.09.23, 15:06


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Доброго дня. Потрібно при дабл кліку на значені Номенклатура в ТЗ на формі відкрити форму списка Номенклатури та зпозіціонуватися на обраному елементі.
Зо зробив.

Процедура СопутствующиеТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
    Если ЭлементыФормы.СопутствующиеТовары.ТекущаяКолонка.Имя = "Номенклатура" Тогда
        Товар = ЭлементыФормы.СопутствующиеТовары.ТекущиеДанные.Номенклатура.Ссылка;
        ПараметрыФормы = Новый Структура("ТекущаяСтрока", Товар);
        ОткрытьФорму("Справочник.Номенклатура.ФормаСписка", ПараметрыФормы,ЭтаФорма); 
    КонецЕсли;
    СтандартнаяОбработка = Ложь;
КонецПроцедуры


Працює, але трохи не так, як хочу. При кліку на значенні, 1С дає можливість текстового редагування обраного елемента в ТЗ, що в моэму випадку є некрасиво. При виборі значення кнопкою вибору все працює як хочу, але дабл клік чогось не бачу як зробити. В налаштуваннях поля вводу стоять прапорці "кнопка выбора", "кнопка очистки"." Процедура запускаэться в обробнику "Начало выбора". "


Talkman @ Сегодня, 15:15 * ,
Трішки лишню умову написав, до обробник поміняв. Раніше інший обробник процедуру запускав.


Talkman @ Сегодня, 15:23 * ,
Звичайні форми. УТ 2.3
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177699 · Ответов: 1 · Просмотров: 637
 

>  Як виправити запрос, щоб він правильно відпрацьовував.
Talkman
Отправлено: 13.09.23, 13:14


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Через ліве з'єднання можуть проскакувати значення NULL. Можливо через це сума рахується некорректно. У вас для кожного елемента довідника є значення в регістрах?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177697 · Ответов: 4 · Просмотров: 918
 

>  Добавить в отчет ВзаиморасчетыСКонтрагентами функцию РАЗНОСТЬДАТ между текущей датой и датой документа расчета как показатель
Talkman
Отправлено: 15.06.23, 9:44


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


byshchenko @ Сегодня, 10:24 * ,
Значит это возможно в УО? Спасибо хоть за такую информацию. Этот пост не предложение работы, а просьба в помощи советом как вывести в колонку не ресурс регистра, а вычисляемую функцию. Можно, конечно, пойти проще и сделать отдельным отчетом не на основании УО, но хотелось бы просто добавить в существующий. Общий вопрос: можно ли в УО выводить колонку с вычисляемой функцией, а не ресурсом и делать по ней отбор?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177339 · Ответов: 5 · Просмотров: 1544
 

>  Добавить в отчет ВзаиморасчетыСКонтрагентами функцию РАЗНОСТЬДАТ между текущей датой и датой документа расчета как показатель
Talkman
Отправлено: 14.06.23, 11:07


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Talkman @ Сегодня, 10:20 * ,
Простыми словами нужно вывести информацию о количестве дней с даты документа расчета по сегоднешний день.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177337 · Ответов: 5 · Просмотров: 1544
 

>  Добавить в отчет ВзаиморасчетыСКонтрагентами функцию РАЗНОСТЬДАТ между текущей датой и датой документа расчета как показатель
Talkman
Отправлено: 14.06.23, 9:20


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Добрый день. Есть отчет ВзаиморасчетыСКонтрагентами на базе УО. Есть ли возможность добавить в него функцию РАЗНОСТЬДАТ между текущей датой и датой документа расчета как показатель либо, что было бы лучше, как доп. колонку? Спасибо. УТ 2.3, 8.3.16.

  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177336 · Ответов: 5 · Просмотров: 1544
 

>  Запрос к регистру бухгалтерии
Talkman
Отправлено: 30.05.23, 11:35


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


andreydv87 @ 24.05.23, 15:12 * ,
Вы все правильно написали. Я о том, что если значение единственного ресурса в запросе ненулевое, то запись попадает в выборку с учетом доп. условий (параметров виртуальной таблицы). Это кажется очевидным, но люди, которые только начинают сталкиваться с запросами не всегда сразу это понимают.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177270 · Ответов: 11 · Просмотров: 894
 

>  Запрос к регистру бухгалтерии
Talkman
Отправлено: 24.05.23, 11:09


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


andreydv87 @ Вчера, 16:31 * ,
Само собой если выбраны параметры таблицы и доп. условия они тоже решают. Кто же спорит? Я немного о другом.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177256 · Ответов: 11 · Просмотров: 894
 

>  Запрос к регистру бухгалтерии
Talkman
Отправлено: 23.05.23, 12:03


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Цитата(sava1 @ 23.05.23, 11:14) *
вот обороты Счета +КоррСчет + Сумма дебит. оборота

ВЫБРАТЬ
    ХозрасчетныйОбороты.Счет,
    ХозрасчетныйОбороты.КорСчет,
    ХозрасчетныйОбороты.СуммаОборотДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата1, &Дата2, Период, Счет = &Счет, &СпСубконто, , , ) КАК ХозрасчетныйОбороты



Побуду капитаном очевидность. Как я понял тут это надо, сам недавно в восьмерке. Если в запросе к одной таблице существует поле только одного ресурса, то в выборку попадут записи с заполненным значением данного ресурса. В данной ситуации если ХозрасчетныйОбороты.СуммаОборотДт = 0 запрос ее проигнорирует.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #177251 · Ответов: 11 · Просмотров: 894
 

>  Подписка на событие для отчетов
Talkman
Отправлено: 26.04.23, 14:42


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


andreydv87 @ Сегодня, 10:36 * ,
Слишком много ролей прийдется создавать для различных отчетов.
Сейчас сделал в процедуре ПередОткрытием вызов функции поиска справочника с реквизитом имени отчета, смотрю есть ли там открывающий отчет пользователь и возвращаю Ложь или Истина. Минус в том, что для всех отчетов нужно прописывать процедуру перед открытием. Что то типа такого.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Отказ = УправлениеОтчетами.ОграничениеДоступаПользоватем(ЭтотОбъект);
    Если Отказ Тогда
        Предупреждение("Отказано в доступе!")  
    КонецЕсли;
КонецПроцедуры


Функция ОграничениеДоступаПользоватем(Объект) Экспорт

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

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


  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177142 · Ответов: 5 · Просмотров: 806
 

>  Подписка на событие для отчетов
Talkman
Отправлено: 25.04.23, 14:58


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Добрый день. Стоит задача сделать интерактивную возможность разрешать/запрещать пользователям открывать различные отчеты. Думал сделать данный функционал через подписку на событие и проверку по справочнику, куда вносить данные по названию отчета и перечню пользователей с доступом. 1С 8.3.16.1659 УТ 2.3. В перечне подписок на событие есть событие ОтчетМенеджер.ОбработкаПолученияФормы. По смыслу вроде как подходит. При получении формы проверяю можно или нет пользователю открывать отчет и соответственно даю добро на открытие формы или нет. Но при отладке открытия отчета 1С-ка не прыгает в процедуру, описанную в обработчике. Где я просчитался и правильная ли моя логике в принципе?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #177126 · Ответов: 5 · Просмотров: 806
 

>  Посадова інструкція розробника програмного забезпечення 1С
Talkman
Отправлено: 12.04.23, 14:09


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


andreydv87 @ 10.04.23, 19:30 * ,
Весомые замечания. Спасибо.
  Форум: Тематическое общение · Просмотр сообщения: #177058 · Ответов: 2 · Просмотров: 1166
 

>  Посадова інструкція розробника програмного забезпечення 1С
Talkman
Отправлено: 10.04.23, 10:46


Завсегдатай
****

Группа: Пользователи
Сообщений: 186
Регистрация: 21.06.11
Из: Черкассы
Пользователь №: 9897


Доброго дня. Якщо хтось зіштовхувався з гарно складеною посадовою інструкцією програміста 1С поділіться будь-ласка. Такою, щоб без пунктів накшталт "адміністрування системного та мережевого забезпечення локальних та глобальних обчислювальних мереж". Дякую.

Знайшов таку. Може комусь знадобиться.

I. Загальні положення
1. Головним завданням Програміста 1С є конфігурування та розробка 1С: підприємство.
2. Програміст 1С безпосередньо підпорядковується начальнику відділу інформаційних технологій.
3. Програміст 1С призначається та звільняється з посади наказом Генерального директора.
4. У своїй діяльності керується:
- законодавством України,
- наказами, розпорядженнями, вказівками генерального директора,
- правилами, інструкціями та ін. документами, що регулюють роботу відділу інформаційних технологій Програміста 1С,
- поточною посадовою інструкцією,
- політикою в галузі якості.
5. Програміст 1С повинен знати:
- постанови, розпорядження, накази, інші керівні та нормативні документи вищих та інших органів щодо методів використання обчислювальної техніки при обробці інформації;
- техніко-експлуатаційні характеристики, конструктивні особливості, призначення та режими роботи обладнання, правила його технічної експлуатації;
- правила внутрішнього трудового розпорядку;
- правила та норми охорони праці, техніки безпеки, виробничої санітарії та протипожежного захисту.

II. Посадові обов’язки

Програміст 1С виконує такі функціональні обов'язки:
1. Програмний супровід конфігурацій 1С-Підприємства.
2. Модифікація та оновлення існуючих документів, звітів, обробок бухгалтерського, оперативного та управлінського обліку.
3. Створення нових документів, звітів, обробок бухгалтерського, оперативного та управлінського обліку.
4. Розробка методів та форм ведення обліку товарообігу
5. Навчання персоналу компанії та віддалених підрозділів компанії роботі з існуючими та новостворюваними документами та звітами.
6. Виконання разових службових завдань, доручень та вказівок Генерального директора, Виконавчого директора та начальника відділу інформаційних технологій, що входять до сфери діяльності Програміста 1С.

III. Права

Програміст 1С має право:
1. Вносити на розгляд безпосередньому керівнику компетентні та обґрунтовані пропозиції з питань, що входять до його компетенції.
2. Вимагати забезпечення нормальними умовами праці (робочим місцем, засобами праці та ін.).
3. Користування затвердженими Генеральним директором Інструкціями, наказами, розпорядженнями, Правилами та ін. документами, що регламентують роботу Програміста 1С та відділу інформаційних технологій.


  Форум: Тематическое общение · Просмотр сообщения: #177047 · Ответов: 2 · Просмотров: 1166
 

8 страниц V   1 2 3 > » 

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 01.03.24, 10:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!