Понимаю тема старая но решил фот привести примерчик и заодно прояснить для себя некоторые моменты работаем с библиотечкой которую необходимо зарегистрировать в системе 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(); КонецЕсли;
Так вот у меня возник вопрос для моей задачи не принципиальный, но если кто знает подскажите как выставить кодировку текста в сообщении. То есть чтобы воспринимало кириллические символы.
Оно удалит только (старт и финиш) фоновых задач чего мне и надо просто было интересно почему не отрабатывает отбор по имени приложения.
Кстати при фильтрации содержимого журнала регистрации по приложению допускается как _$Job$_ так и Фоновое задание и т.д. Тоисть при отборе (теоретически) допустимо использовать эти значение
1. Вы запускаете процедуру в клиентской части или в серверной? В клиентской она недоступна. 2. Приложение запущено с правами администратора компьютера? 3. Файл журнала действительно хранится в LGD (т.е. Вы физически видите этот файл на диске)? 4. Вместо фильтр.Вставить("Приложение","Фоновое задание"); пробовали фильтр.Вставить("ИмяПриложения","Фоновое задание"); ?
1 Запускал на толстом клиенте - в описании процедуры написано что там доступен; 2. Вот тут может быть загвоздка так как 1с сервер находится на другой машине вызываю из регламентного задания; 3. Да я его вижу; 4. Согласен не внимательно вычитал описание;
и во как ругается {ОбщийМодуль.Демон.Модуль(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);
Но получаю ошибочку {Обработка.a1.Форма.Форма.Форма(9)}: Ошибка при вызове метода контекста (ОчиститьЖурналРегистрации) ОчиститьЖурналРегистрации(фильтр); по причине: Ошибка очистки журнала регистрации. по причине: Метод не поддерживается данной реализацией журнала регистрации
Попробовал перевести журнал в новый формат - не помогло Подскажите пожалуйста как выйти из данной ситуации.
//-----------------------------Попітка создать парсер Попытка ДокЭкспорт=Новый 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(ИмяФайла);
Error = ДокЭкспорт.parseError; Если Error.errorCode<>0 Тогда // есть ошибка фОшибка = 1; Сообщить(НСтр("ru = 'Ошибка:'; uk = 'Помилка:'")); Сообщить(Error.reason); КонецЕсли;
Для регистрации налоговых накладных налоговая инспекция убедительно просит отправлять их в формате xml при этом требует использовать схему J1201005.xsd
Задача выгрузка налоговой декларации. Ранее никогда с XML не работал. Порывшись в дебрях форума нашёл статейку - почитал. Применил к своей ситуации. Для примера пытаюсь вывести в файл дату. Думаю файл схемы знаком многим.
ЧСхему=Новый ЧтениеXML; //Выбор схемы ЧСхему.ОткрытьФайл("D:\Отчеты\Схемы\J1201005.xsd"); //Создаем объект дом и загоняем в него схему ПостроительДом=Новый ПостроительDOM; ДомДок=ПостроительДом.Прочитать(ЧСхему); ПостроительСхем=Новый ПостроительСхемXML; НСхем=ПостроительСхем.СоздатьСхемуXML(ДомДок); НаборСхем=Новый НаборСхемXML; НаборСхем.Добавить(НСхем); //Создаем фабрику XDTO Фабрика=Новый ФабрикаXDTO(НаборСхем);
Есть один странный момент в отладчике переменные которым присваиваются типы светятся как тип «Неопределенно». Отсюда вопрос строчка http://www.w3.org/2001/XMLSchema присутствует только в файле Xsd. Может типы надо дополнительно объявлять в конфигураторе?
Условие нужно пихать в "|ИЗ | Документ.ПродажиТочек.Товары(<сюда>) КАК ПродажиТочекТовары" а то у Вас сначала выбирается все а потом накладывается условие, а нужно выбирать уже с условием.
а вообще, да СКД пора бы учить... п.с. универсальный отчет в конце концов..
А вы с регистрами не путаете? Если нет, то более подробный пример условия. И СКД не всегда подходит.
В 1с есть инструмент поиска по отсортированным полям справочника путем введения данных прямо в табличную часть формы списка. Так собственно проблема заключается в том что при поиске по числовым полям (к примеру по коду) в поле подбора добавляется 0. Речь идет не о поиске через CTRL-F, а именно о поиске по отсортированному полю справочника. Заранее благодарю за внимание.
Благодарю за критику, в дальнейшем буду учитывать Ваши замечания по оптимизации. Что же до запроса - проверил остатки выводит корректно даже по дням без движений.
МТ=Новый МенеджерВременныхТаблиц; Условие=""; Если не ВыбЗавод.Пустая() Тогда Условие=" | И Товары.Завод = &Завод"; КонецЕсли; МВТЗапрос=Новый Запрос("ВЫБРАТЬ | ТЗ.Период |ПОМЕСТИТЬ Дни |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДНИ.Период КАК Период, | СУММА(ВЫБОР | КОГДА Движения.Период = &ДатаС | ТОГДА Движения.КолКонечныйОстаток - ВЫБОР | КОГДА РезервыТоваровОстаткиИОбороты.КолКонечныйОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ РезервыТоваровОстаткиИОбороты.КолКонечныйОстаток | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА Движения.Период <= ДНИ.Период | ТОГДА Движения.КолОборот | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ) КАК Кол, | Товары.Ссылка КАК Товар, | Товары.Код, | ВложенныйЗапрос.ДатаСозд КАК ДатаСозд, | МАКСИМУМ(Серии.Ссылка) КАК Ссылка1 |ИЗ | Дни КАК ДНИ, | Справочник.Серии КАК Серии | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Серии.Владелец КАК Владелец, | МАКСИМУМ(Серии.ДатаСозд) КАК ДатаСозд | ИЗ | Справочник.Серии КАК Серии | ГДЕ | Серии.Опт1 > 0 | И Серии.РознЦена > 0 | | СГРУППИРОВАТЬ ПО | Серии.Владелец) КАК ВложенныйЗапрос | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&ДатаС, &ДатаПо, День, , ) КАК Движения | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервыТоваров.ОстаткиИОбороты(&ДатаС, &ДатаПо, День, , ) КАК РезервыТоваровОстаткиИОбороты | ПО Движения.Товар = РезервыТоваровОстаткиИОбороты.Товар | И Движения.Период = РезервыТоваровОстаткиИОбороты.Период | ПО (Движения.Товар = Товары.Ссылка) | ПО (Товары.Ссылка = ВложенныйЗапрос.Владелец) | ПО (ВложенныйЗапрос.ДатаСозд = Серии.ДатаСозд) | И (ВложенныйЗапрос.Владелец = Серии.Владелец) |ГДЕ | Серии.Опт1 > 0 | И Серии.РознЦена > 0 | И Товары.ПометкаУдаления <> ИСТИНА "+Условие+"
| |СГРУППИРОВАТЬ ПО | ДНИ.Период, | Товары.Ссылка, | Товары.Код, | ВложенныйЗапрос.ДатаСозд | |УПОРЯДОЧИТЬ ПО | Товары.Наименование |ИТОГИ | СУММА(ВЫБОР | КОГДА Кол > 0 | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ) КАК Кол, | МАКСИМУМ(ДатаСозд), | МАКСИМУМ(Ссылка1) |ПО | Товар"); МВТЗапрос.УстановитьПараметр("ТЗ", ТЗ); МВТЗапрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); МВТЗапрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); МВТЗапрос.УстановитьПараметр("Завод", ВыбЗавод); МВТЗапрос.МенеджерВременныхТаблиц=МТ;
Коротко о задаче: Отчет должен вернуть количество дней, когда чистый остаток на складе был =0. Также в отчет выводятся Закупочная цена и оптовая цена
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!