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

Хранилище

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

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



2 страниц V   1 2 >

>  Рассылка СМСчерез 3g модемы
Zlyukka
Отправлено: 26.12.14, 15:02


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Понимаю тема старая но решил фот привести примерчик и заодно прояснить для себя некоторые моменты работаем с библиотечкой которую
необходимо зарегистрировать в системе SMSFrom1C.dll
        SMS = Новый COMОбъект("AddIn.SMSSender");
    Если SMS.OpenCOMPort(СокрЛП(ПортТ)) = Истина Тогда
        Если Сообщ=1 Тогда Сообщить("Подключились к СОМ-порту! "+ТекущаяДата()) КонецЕсли;
        ЗаписьЖурналаРегистрации("СМС: ",УровеньЖурналаРегистрации.Информация,,,"Количество СМС "+СМС.Количество());
        Для каждого ТС Из СМС Цикл
             SMS.SendComm("AT", Задержка, 0);
            SMS.SendComm("AT+CMGF=1", Задержка, 0);
            SMS.SendComm("AT+CMGS=""" + СокрЛП(ТС.Тел) + """", Задержка, 0);
            Рез = SMS.SendComm(СокрЛП(ТС.Стр), Задержка*5, 1);                    
        КонецЦикла;
       SMS.CloseCOMPort();
       КонецЕсли;


Так вот у меня возник вопрос для моей задачи не принципиальный, но если кто знает подскажите как выставить кодировку текста в сообщении. То есть чтобы воспринимало кириллические символы.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94728 · Ответов: 1 · Просмотров: 2826
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 23.12.14, 17:46


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Поспешил фильтр.Вставить("ИмяПриложения","BackgroundJob"); вызывает все туже ошибку ну да ладно мне хватит и такого
    фильтр=Новый Структура;
    Событие=Новый Массив;
    Событие.Добавить("_$Job$_.Start");
    Событие.Добавить("_$Job$_.Succeed");        
    Событие.Добавить("_$Session$_.Finish");        
    Событие.Добавить("_$Session$_.Start");
    фильтр.Вставить("ДатаОкончания",ТекущаяДата());
    фильтр.Вставить("Событие",Событие);
    ОчиститьЖурналРегистрации(фильтр);

Оно удалит только (старт и финиш) фоновых задач чего мне и надо просто было интересно почему не отрабатывает отбор по имени приложения.


Кстати при фильтрации содержимого журнала регистрации по приложению допускается как _$Job$_ так и Фоновое задание и т.д. Тоисть при отборе (теоретически) допустимо использовать эти значение
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94609 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 23.12.14, 17:03


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(Petre @ 23.12.14, 16:35) *
Думаю, правильно так:
("ИмяПриложения","BackgroundJob")

ХМ Странно так работает хотя ("ИмяПриложения","ФоновоеЗадание") не принимало.
Спасибо за содействие.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94604 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 23.12.14, 15:02


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(logist @ 23.12.14, 13:07) *
Может ("ИмяПриложения","_$Job$_") ?

Так тоже не работает
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94597 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 23.12.14, 11:45


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Заработало
Процедура ОчисткаЖурнала() Экспорт
    фильтр=Новый Структура;
    Событие=Новый Массив;
    Событие.Добавить("_$Job$_.Start");
    Событие.Добавить("_$Job$_.Succeed");        
    Событие.Добавить("_$Session$_.Finish");        
    Событие.Добавить("_$Session$_.Start");        
    фильтр.Вставить("ДатаОкончания",ТекущаяДата());    
    //фильтр.Вставить("ИмяПриложения","Фоновое задание");    
    фильтр.Вставить("Компьютер","S8");
    фильтр.Вставить("Событие",Событие);
    ОчиститьЖурналРегистрации(фильтр);    
КонецПроцедуры

Можетфильтр.Вставить("ИмяПриложения","Фоновое задание"); не нравилась хотя причом тут база заблокирована? Если кто знает поясните
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94591 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 23.12.14, 9:56


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(logist @ 22.12.14, 17:22) *
Подозреваю, что в момент работы этого задания в базе не должно быть пользователей, не должен быть открыт конфигуратор.

К сожалению не помогло. А чего это оно ругается на формат файла?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94588 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 22.12.14, 17:04


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(logist @ 19.12.14, 10:55) *
1. Вы запускаете процедуру в клиентской части или в серверной? В клиентской она недоступна.
2. Приложение запущено с правами администратора компьютера?
3. Файл журнала действительно хранится в LGD (т.е. Вы физически видите этот файл на диске)?
4. Вместо фильтр.Вставить("Приложение","Фоновое задание"); пробовали фильтр.Вставить("ИмяПриложения","Фоновое задание"); ?


1 Запускал на толстом клиенте - в описании процедуры написано что там доступен;
2. Вот тут может быть загвоздка так как 1с сервер находится на другой машине вызываю из регламентного задания;
3. Да я его вижу;
4. Согласен не внимательно вычитал описание;

Теперь код выглядит так
Процедура ОчисткаЖурнала() Экспорт
    фильтр=Новый Структура;
    Событие=Новый Массив;
    Событие.Добавить("_$Job$_.Start");
    Событие.Добавить("_$Job$_.Succeed");        
    фильтр.Вставить("ДатаОкончания",ТекущаяДата()-60);    
    фильтр.Вставить("ИмяПриложение","Фоновое задание");    
    фильтр.Вставить("Событие",Событие);
    ОчиститьЖурналРегистрации(фильтр);    
    Сообщить("Записи удалены");
КонецПроцедуры

и во как ругается
{ОбщийМодуль.Демон.Модуль(243)}: Ошибка при вызове метода контекста (ОчиститьЖурналРегистрации)
по причине:
Ошибка очистки журнала регистрации.
по причине:
Ошибка формата файла журнала регистрации
по причине:
sqlite3_exec failed: database is locked
db: C:\Program Files\1cv8\srvinfo\reg_1541\cc10818a-3dff-4350-9e32-d83a386413b1\1Cv8Log\1Cv8.lgd
sql: DELETE FROM EventLog WHERE rowID IN (SELECT rowID FROM _ForDelete);
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94567 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 19.12.14, 10:53


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Да я об этом тоже подумываю но обновление может потащить за собой ещё кучу работы 32542620.gif
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94492 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 19.12.14, 10:45


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(Petre @ 19.12.14, 11:44) *
Какая ошибка после перехода на новый формат?

таже
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94490 · Ответов: 19 · Просмотров: 13770
 

>  Ошибка при очистке журнала регистрации
Zlyukka
Отправлено: 19.12.14, 10:33


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Платформа 1с 8.3.5.1119 пользую функцию ОчиститьЖурналРегистрации()

Процедура КнопкаВыполнитьНажатие(Кнопка)
    фильтр=Новый Структура;
    Событие=Новый Массив;
    Событие.Добавить("_$Job$_.Start");
    Событие.Добавить("_$Job$_.Succeed");    
    фильтр.Вставить("Приложение","Фоновое задание");
    фильтр.Вставить("Событие",Событие);
    ОчиститьЖурналРегистрации(фильтр);
КонецПроцедуры

Но получаю ошибочку
{Обработка.a1.Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (ОчиститьЖурналРегистрации)
ОчиститьЖурналРегистрации(фильтр);
по причине:
Ошибка очистки журнала регистрации.
по причине:
Метод не поддерживается данной реализацией журнала регистрации

Попробовал перевести журнал в новый формат - не помогло
Подскажите пожалуйста как выйти из данной ситуации.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #94488 · Ответов: 19 · Просмотров: 13770
 

>  Работа с XDS в XML
Zlyukka
Отправлено: 25.09.14, 12:10


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Примерное решение

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ИмяСхемы="D:\Отчеты\Схемы\pharmacy";
    ИмяФайла="D:\Rez\test.xml";

    
    //-----------------------------Попітка создать парсер
    Попытка        
        ДокЭкспорт=Новый COMОбъект("Msxml2.DOMDocument.4.0");
        Сообщить("Парсер подключен");
    Исключение
        Сообщить("Парсер не установлен");
    КонецПопытки;
    pi =ДокЭкспорт.createProcessingInstruction("xml", "version=""1.0"" encoding=""windows-1251""");
    ДокЭкспорт.insertBefore(pi, ДокЭкспорт.childNodes.item(0));
    элДокумента = ДокЭкспорт.createElement("Apteki");
    ДокЭкспорт.appendChild(элДокумента);
    
    элДокумента.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema");
    элДокумента.setAttribute("xsi:noNamespaceSchemaLocation",ИмяСхемы+".xsd");
    //------Создоем Элемент тела
    Тело=ДокЭкспорт.createElement("Apteka");
    //------Заполняем елемент тела    
    элДокумента.appendChild(Тело);    
    
    ТТочеи=Справочники.ТорговыеТочки.Выбрать();    
    Пока ТТочеи.Следующий() Цикл
        //------Создаем поле ID/Adres
        Если ТТочеи.ЭтоГруппа Тогда продолжить КонецЕсли;
        ИД=ДокЭкспорт.createElement("ID");        
        Адрес=ДокЭкспорт.createElement("Adres");
        //------Добавляем в тело XML документа строки для полей ИЛ и Адрес
        Тело.appendChild(ИД);
        Тело.appendChild(Адрес);
        //------Заполняем строки значениями
        ИД.text = ТТочеи.Код;
        Адрес.text = СокрЛП(ТТочеи.Адрес);           
    КонецЦикла;                     
    ДокЭкспорт.Save(ИмяФайла);        
    
    Попытка
        фОшибка = 0;
        
        ДокЭкспорт.validateOnParse = Истина;
        ДокЭкспорт.async = Ложь;
        ДокЭкспорт.Load(ИмяФайла);
        
        Error = ДокЭкспорт.parseError;
        Если Error.errorCode<>0 Тогда
            // есть ошибка
            фОшибка = 1;
            Сообщить(НСтр("ru = 'Ошибка:'; uk = 'Помилка:'"));
            Сообщить(Error.reason);
        КонецЕсли;
        
    Исключение
        фОшибка = 1;
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Сообщить(НСтр("ru='-- Проверка завершена!';uk='-- Перевірка завершена!'"), ?(фОшибка = 1,СтатусСообщения.Важное, СтатусСообщения.Обычное));    
КонецПроцедуры
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91581 · Ответов: 7 · Просмотров: 4577
 

>  Работа с XDS в XML
Zlyukka
Отправлено: 24.09.14, 15:29


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Для регистрации налоговых накладных налоговая инспекция убедительно просит отправлять их в формате xml при этом требует использовать схему J1201005.xsd
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91542 · Ответов: 7 · Просмотров: 4577
 

>  Работа с XDS в XML
Zlyukka
Отправлено: 24.09.14, 15:00


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Как указать с какой схемой работать при выгрузке данных в XML
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91537 · Ответов: 7 · Просмотров: 4577
 

>  Кто разобрался с XDOT помогите.
Zlyukka
Отправлено: 24.09.14, 14:56


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


ага теперь понятно что за лажа.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91536 · Ответов: 5 · Просмотров: 3237
 

>  Кто разобрался с XDOT помогите.
Zlyukka
Отправлено: 24.09.14, 13:53


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


icon_cuss.gif
Цитата(Petre @ 24.09.14, 13:46) *
Неверный uri в типе.


ОбщКонт=Фабрика.Тип(фабрика.Пакеты.Получить(0).URIПространстваИмен, "DeclarContent");


Всеравно не помогает

а вот из файлика XSD
<?xml version="1.0" encoding="windows-1251"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>


Прошу прощения за смайлик
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91529 · Ответов: 5 · Просмотров: 3237
 

>  Кто разобрался с XDOT помогите.
Zlyukka
Отправлено: 24.09.14, 13:01


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Проблема заключается в том что строчка
ОбщКонт=Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "DeclarContent");
возвращает Неопределено.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91527 · Ответов: 5 · Просмотров: 3237
 

>  Кто разобрался с XDOT помогите.
Zlyukka
Отправлено: 24.09.14, 11:53


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Кто разобрался с XDOT помогите.

Задача выгрузка налоговой декларации. Ранее никогда с XML не работал. Порывшись в дебрях форума нашёл статейку - почитал. Применил к своей ситуации. Для примера пытаюсь вывести в файл дату. Думаю файл схемы знаком многим.

        ЧСхему=Новый ЧтениеXML;
    //Выбор схемы
    ЧСхему.ОткрытьФайл("D:\Отчеты\Схемы\J1201005.xsd");    
    //Создаем объект дом и загоняем в него схему
    ПостроительДом=Новый ПостроительDOM;
    ДомДок=ПостроительДом.Прочитать(ЧСхему);
    ПостроительСхем=Новый ПостроительСхемXML;
    НСхем=ПостроительСхем.СоздатьСхемуXML(ДомДок);
    НаборСхем=Новый НаборСхемXML;
    НаборСхем.Добавить(НСхем);
    //Создаем фабрику XDTO
    Фабрика=Новый ФабрикаXDTO(НаборСхем);
    
    //-----------------------------------------------------
    ДатаОтчета=ТекущаяДата();
    ГодОтч=Год(ДатаОтчета);
    МесОтч=Месяц(ДатаОтчета);
    
    ОбщКонт=Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "DeclarContent");
    ПГод=Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "PERIOD_YEAR");    
    ПМес=Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "PERIOD_MONTH");        
    Корень=Фабрика.Создать(ОбщКонт);
    
    ПГод=ГодОтч;
    ПМес=МесОтч;
    
    НФ=Новый ЗаписьXML();
    НФ.ОткрытьФайл("D:\Rez\test.xml");
    фабрика.ЗаписатьXML(НФ,Корень,,,,НазначениеТипаXML.Явное);
    НФ.Закрыть();
    ЗапуститьПриложение("D:\Rez\test.xml");


Ругается на
Корень=Фабрика.Создать(ОбщКонт);
Просьба быть снисходительнее только учусь

Есть один странный момент в отладчике переменные которым присваиваются типы светятся как тип «Неопределенно». Отсюда вопрос строчка http://www.w3.org/2001/XMLSchema присутствует только в файле Xsd. Может типы надо дополнительно объявлять в конфигураторе?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #91516 · Ответов: 5 · Просмотров: 3237
 

>  Помогите оптимизировать код
Zlyukka
Отправлено: 22.08.14, 12:41


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(zetovich @ 22.08.14, 12:33) *
Условие нужно пихать в
"|ИЗ
| Документ.ПродажиТочек.Товары(<сюда>) КАК ПродажиТочекТовары"
а то у Вас сначала выбирается все а потом накладывается условие, а нужно выбирать уже с условием.

а вообще, да СКД пора бы учить...
п.с. универсальный отчет в конце концов..

А вы с регистрами не путаете? Если нет, то более подробный пример условия. И СКД не всегда подходит.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90518 · Ответов: 9 · Просмотров: 4011
 

>  Помогите оптимизировать код
Zlyukka
Отправлено: 22.08.14, 10:23


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Решение:
Пока ОбщВыб.Следующий() Цикл
        ДискКлВыб=ОбщВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ДисконтКл");
        ВсегоКарт=ДискКлВыб.Количество();
        ТекКарт=0;
        Пока ДискКлВыб.Следующий() Цикл
            ТекКарт=ТекКарт+1;
            Состояние("Обрабатываю "+ОКР(ТекКарт*100/ВсегоКарт)+"% карт");
            ОСЗ.Параметры.Карт=ДискКлВыб.ДисконтКл.КартНом;
            Таб.Вывести(ОСЗ);
            //ПВыб=ДискКлВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период");
            //Пока ПВыб.Следующий() Цикл                   
            //    Кол=ПВыб.Время;
            //    Сум=ПВыб.Сумма;                            
            //    ОСМ.Параметры.Заполнить(Новый Структура("Кол,Сум",Кол,Сум));
            //    Таб.Присоединить(ОСМ);
            //КонецЦикла;
            
            Пока ПериодВыб.Следующий() Цикл    
                Кол=0;
                Сум=0;
                ОбработкаПрерыванияПользователя();
                ДисВыб=ДискКлВыб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период");
                Пока ДисВыб.НайтиСледующий(Новый Структура("Период", ПериодВыб.Период)) Цикл
                    Кол=ДисВыб.Время;
                    Сум=ДисВыб.Сумма;
                КонецЦикла;
                ОСМ.Параметры.Заполнить(Новый Структура("Кол,Сум",Кол,Сум));
                Таб.Присоединить(ОСМ);                
            КонецЦикла;         
            ПериодВыб.Сбросить();
        КонецЦикла;
    КонецЦикла;
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90509 · Ответов: 9 · Просмотров: 4011
 

>  Помогите оптимизировать код
Zlyukka
Отправлено: 22.08.14, 8:32


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(logist @ 22.08.14, 8:22) *
В таком случае тут вряд ли можно что-то оптимизировать. Разве что данные брать не из документа а из регистра (если он есть и делает нужные движения)

Да тормозит не столько запрос , сколько вывод в цикле когда перебирает данные.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90496 · Ответов: 9 · Просмотров: 4011
 

>  Помогите оптимизировать код
Zlyukka
Отправлено: 22.08.14, 8:20


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Цитата(logist @ 22.08.14, 8:13) *
Сделать отчет на СКД не предлагать?

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

>  Помогите оптимизировать код
Zlyukka
Отправлено: 22.08.14, 7:48


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748




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


В таком варианте код работает, но очень медленно. Кто может подсказать какие – то варианты по оптимизации.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90489 · Ответов: 9 · Просмотров: 4011
 

>  Поиск по числовым полям справочника
Zlyukka
Отправлено: 21.08.14, 11:32


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


В 1с есть инструмент поиска по отсортированным полям справочника путем введения данных прямо в табличную часть формы списка. Так собственно проблема заключается в том что при поиске по числовым полям (к примеру по коду) в поле подбора добавляется 0. Речь идет не о поиске через CTRL-F, а именно о поиске по отсортированному полю справочника. Заранее благодарю за внимание.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90444 · Ответов: 0 · Просмотров: 1542
 

>  Получение элемента с максимальной датой с подчиненного справочника
Zlyukka
Отправлено: 15.08.14, 7:05


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Благодарю за критику, в дальнейшем буду учитывать Ваши замечания по оптимизации. Что же до запроса - проверил остатки выводит корректно даже по дням без движений.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90175 · Ответов: 13 · Просмотров: 9748
 

>  Менеджер временных таблиц. Проблема при аварийном завершении
Zlyukka
Отправлено: 14.08.14, 11:58


Общительный
**

Группа: Пользователи
Сообщений: 33
Регистрация: 12.08.14
Пользователь №: 37748


Давайте попробуем

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

Коротко о задаче: Отчет должен вернуть количество дней, когда чистый остаток на складе был =0. Также в отчет выводятся Закупочная цена и оптовая цена

 ! 

Правила п.6
 
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #90135 · Ответов: 6 · Просмотров: 3397
 

2 страниц V   1 2 >

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

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