На 8.3.19 робота Web Клиента стабільна, перевірено на багатьох конфігураціях Ніколи не потрібно спішити переходити на вищі релізи платформи ніж рекомендує розробник
Добрий вечір, виникла потреба написати код по відбору документів на формі списку, але звертаючить створених користувачем додаткових реквізитів (стандартний функціонал), можливо у когось була аналогічна потреба і є готовий код, стандартний функціонал відбору працює чудесно по дод реквізитах, але треба дописати це щоб було у всіх користувачів без прив'язки до налаштувань користувача і т.д
При оновлені на 2.0.23.1 видає таке В процесі оновлення інформаційної бази виникла критична помилка через: У схемі бази даних відсутня таблиця "Const10573".
Вирішив відкатати копію то при завантажені інормаційної бази в чисту файловий варіант дає таке
Помилка завантаження інформаційної бази. В інформаційну базу завантажені не всі дані через: Помилка під час виконання операції над даними: Значення, що встановлюється, не поміщається у полі таблиці '_REFERENCE47._FLD8995' через: Значення, що встановлюється, не поміщається у полі таблиці '_REFERENCE47._FLD8995'
Коли спробував загрузити в SQL варіант - все завантажилось але при відкритті бази дає таке
Невідновна помилка Помилка при виконанні запиту POST до ресурсу /e1cib/logForm: через: Помилка SDBL: У схемі бази даних нема таблиці з ім`ям InfoRg10535
Можливо у когось щось було похоже, дуже потрібна допомога у вирішені даної проблеми
Germari @ 14.01.22, 13:43
, Була аналогічна ситуація, але я регістри не дозаповняв, а просто перегнав не проведені документи прийоми з копії, бо їх згортати не можна, так як виникає проблема зі звільненням в майбутньому, через ХМЛ вигрузку/загрузку перекиньте документи прийомів і буде Вам щастя
Не знайшов нічого поки готового, шукав в кінці листопада для таких терміналів VERIFONE X990 і Pax a930, тому тема теж цікавить, бо від розробників поки глухо
Тема закрита, зробив нову процедуру через СписокЗначений(), додав туди послідовно назви атрибутів та наступною стрічкою його значення, потім отримую його через індекси, пошук атрибуту + 1 вот і його значення, а далі заповняю табличну частину, після чого формую документ, знаю що замудреним пішов шляхом, але кращих варіантів мною не було, а терміни піджимали
Змінив трохи код, тепер найцікавіше, як співставити значення із початку тексту із їх текстом(значенням) додаю таблицю значень, що виходить після циклу
&НаСервере Процедура ЗагрузитьДанныеИзФайлаXML()
Файл = Новый ЧтениеXML(); ИмяФайла = Объект.Каталог;
Попытка Файл.ОткрытьФайл(ИмяФайла); Исключение Возврат КонецПопытки;
//подготовим дерево значений //у каждой ветки XML может быть наименование, атрибуты и значение дзXML = Новый ДеревоЗначений(); дзXML.Колонки.Добавить("Наименование"); дзXML.Колонки.Добавить("Значение"); дзXML.Колонки.Добавить("Атрибуты");
//так как атрибутов у строки XML может быть несколько - будем записывать их в таблицу значений //каждый атрибут имеет имя и значение тАтрибутыУзла = Новый ТаблицаЗначений(); тАтрибутыУзла.Колонки.Добавить("ИмяА"); тАтрибутыУзла.Колонки.Добавить("ЗначениеА"); тАтрибутыУзла.Колонки.Добавить("Имя"); тАтрибутыУзла.Колонки.Добавить("Значение"); //уровень вложенности поможет нам понимать когда требуется добавить вложенную ветку, а когда нужно вернуться на уровень вверх УровеньВложенности = 0; //текущая строка - строка дерева, будет меняться при увеличении вложенности ТекущаяСтрока = Неопределено; //чтение файла XML 1С производится не построчно, а по структуре, при окончании файла чтение вернет ЛОЖЬ НачатьТранзакцию(); Пока Файл.Прочитать() Цикл //нас интересуют три вида узлов - начало элемента, текст (значение элемента) и конец элемента (чтобы вернуться на уровень вверх) Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если Файл.Имя = "ROW" Тогда УровеньВложенности = 1; //если это первая строка, то добавим ее в самый верх дерева и сохраним только наименование Если ТекущаяСтрока = Неопределено Тогда ТекущаяСтрока = дзXML.Строки.Добавить(); ТекущаяСтрока.Наименование = Файл.Имя; //Продолжить; Иначе //вложенные строки ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить(); ТекущаяСтрока.Наименование = Файл.Имя; //сохраним наименование //есть ли у этого элемента XML атрибуты? Если Файл.КоличествоАтрибутов() > 0 Тогда //если да - скопируем подготовленную пустую таблицу для сохранения атрибутов //тАтрибутыУзла = тАтрибутов.Скопировать(); //цикл по количеству атрибутов у этого элемента Для Сч = 0 по Файл.КоличествоАтрибутов()-1 Цикл //для каждого атрибута запомним имя и значение Если Файл.Имя = "LINE" или Файл.Имя = "TAB" Тогда Продолжить; Иначе РодительскийЭлемент = Файл.Имя; Строка = тАтрибутыУзла.Добавить(); Строка.ИмяА = Файл.ИмяАтрибута(Сч); Строка.ЗначениеА = Файл.ЗначениеАтрибута(Сч); КонецЕсли; КонецЦикла; //сохраним таблицу атрибутов элемента в текущую строку ТекущаяСтрока.Атрибуты = тАтрибутыУзла; КонецЕсли; КонецЕсли; КонецЕсли; ИначеЕсли Файл.ТипУзла = ТипУзлаXML.Текст Тогда //если у элемента есть значение - просто сохраним его
КонецЕсли; ИначеЕсли Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда //в начале элемента увеличиваем уровень вложенности, в конце элемента уменьшаем //УровеньВложенности = УровеньВложенности - 1; //РодительскийЭлемент = Файл.Имя; ////возвращаем текущую строку на уровень вверх //ТекущаяСтрока = ТекущаяСтрока.Родитель; КонецЕсли;
Потрібно загрузити отримані податкові накладні із медка, без використання різних стиковок, ось процедура, обхід якої працює добре, але вкінці пусто, жодних даних не збережено для формування документа, де що не так роблю, можливо у когось є ідеї, бо пару годин голову ламаю
&НаСервере Процедура ЗагрузитьИзФайлаXML() //открываем файл XML 1С на чтение с помощью ЧтениеXML 1С Файл = Новый ЧтениеXML(); ИмяФайла = Объект.Каталог;
Попытка Файл.ОткрытьФайл(ИмяФайла); Исключение Возврат КонецПопытки;
//подготовим дерево значений //у каждой ветки XML может быть наименование, атрибуты и значение дзXML = Новый ДеревоЗначений(); дзXML.Колонки.Добавить("Наименование"); дзXML.Колонки.Добавить("Значение"); дзXML.Колонки.Добавить("Атрибуты");
//так как атрибутов у строки XML может быть несколько - будем записывать их в таблицу значений //каждый атрибут имеет имя и значение тАтрибутов = Новый ТаблицаЗначений(); тАтрибутов.Колонки.Добавить("Имя"); тАтрибутов.Колонки.Добавить("Значение");
//уровень вложенности поможет нам понимать когда требуется добавить вложенную ветку, а когда нужно вернуться на уровень вверх УровеньВложенности = 0; //текущая строка - строка дерева, будет меняться при увеличении вложенности ТекущаяСтрока = Неопределено; //чтение файла XML 1С производится не построчно, а по структуре, при окончании файла чтение вернет ЛОЖЬ Пока Файл.Прочитать() Цикл //нас интересуют три вида узлов - начало элемента, текст (значение элемента) и конец элемента (чтобы вернуться на уровень вверх) Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
УровеньВложенности = УровеньВложенности + 1;
//если это первая строка, то добавим ее в самый верх дерева и сохраним только наименование Если ТекущаяСтрока = Неопределено Тогда ТекущаяСтрока = дзXML.Строки.Добавить(); ТекущаяСтрока.Наименование = Файл.Имя; //Продолжить; Иначе //вложенные строки ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить(); ТекущаяСтрока.Наименование = Файл.Имя; //сохраним наименование
//есть ли у этого элемента XML атрибуты? Если Файл.КоличествоАтрибутов() > 0 Тогда //если да - скопируем подготовленную пустую таблицу для сохранения атрибутов тАтрибутыУзла = тАтрибутов.Скопировать(); //цикл по количеству атрибутов у этого элемента Для Сч = 0 по Файл.КоличествоАтрибутов()-1 Цикл //для каждого атрибута запомним имя и значение Строка = тАтрибутыУзла.Добавить(); Строка.Имя = Файл.ИмяАтрибута(Сч); Строка.Значение = Файл.ЗначениеАтрибута(Сч); КонецЦикла; //сохраним таблицу атрибутов элемента в текущую строку ТекущаяСтрока.Атрибуты = тАтрибутыУзла; КонецЕсли; КонецЕсли; ИначеЕсли Файл.ТипУзла = ТипУзлаXML.Текст Тогда //если у элемента есть значение - просто сохраним его ТекущаяСтрока.Значение = Файл.Значение; ИначеЕсли Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда //в начале элемента увеличиваем уровень вложенности, в конце элемента уменьшаем УровеньВложенности = УровеньВложенности - 1; //возвращаем текущую строку на уровень вверх ТекущаяСтрока = ТекущаяСтрока.Родитель; КонецЕсли;
gnomich @ Вчера, 22:07
, Для незмінених та змінених (потрібно уважно) конфігурацій можна оновленням на Версія 3.2.24 Порядок оновлення продукту "BAS Управління торгівлею" з версії 3.2.23.2 на версію 3.2.24.3, або переходу з продукту "Управління торгівлею для України" версії 3.1.8.1
Створив обробку для завантаження звітів про роздрібні продажі, перший раз все ок, при повтрній вгрузці дублюється номенклатура, додаю процедуру, що роблю не правильно вже не можу поняти, дякую всім наперед, впевнений, що світ не без добрих людей
Если Артикул <> "" Тогда НайдАрт = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",АртикулП); Если СокрЛП(НайдАрт)<> "" Тогда Артикул = НайдАрт.Ссылка;
Иначе НовДов = Справочники.Номенклатура.СоздатьЭлемент(); НовДов.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("2009"); // шт
НовДов.Наименование = Номенкл; НовДов.НаименованиеПолное = Номенкл; Если Артикул<>"" Тогда НовДов.Артикул = Артикул; КонецЕсли;
НовДов.СтавкаНДС = СтавкаНоменкл;
Запись = НовДов.ЕдиницыИзмерения.Добавить(); Запись.Коэффициент = 1; Запись.ЕдиницаИзмерения = НовДов.БазоваяЕдиницаИзмерения;
НовДов.Записать();
Возврат НовДов.Ссылка; КонецЕсли; КонецЕсли;
Запит = Новый Запрос; Запит.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенкл, | Номенклатура.Наименование |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ЛОЖЬ | И Номенклатура.Наименование = &Назва | И Номенклатура.Артикул = &Артикул | И Номенклатура.СтавкаНДС = &СтавкаПДВ";
Запит.УстановитьПараметр("Назва", Номенкл); Запит.УстановитьПараметр("СтавкаПДВ", СтавкаНоменкл); Запит.УстановитьПараметр("Артикул", АртикулП); Виб = Запит.Выполнить().Выбрать(); Если Виб.Следующий() Тогда Если Артикул<>"" И СокрЛП(Виб.Номенкл.Артикул)="" Тогда Об = Виб.Номенкл.ПолучитьОбъект(); Об.Артикул = Артикул; Об.Записать(); КонецЕсли;
Если СтавкаНоменкл <> Виб.Номенкл.СтавкаНДС Тогда Об = Виб.Номенкл.ПолучитьОбъект(); Об.СтавкаНДС = СтавкаНоменкл; Об.Записать(); КонецЕсли;
logist @ Сегодня, 23:07
, дякую за підказки, перевірив та встановив і запустив перерахунок підсумків, це об'ємно по часу, тому після завершення відпишу результат
logist @ Сегодня, 22:46
, очистив налаштування користувача, та кеш програми, без змін, та ні не вимикав підсуммки, хоча чесно кажучи не знаю де саме вони вимикаються, тому мінімальний відсоток такого можливий
logist @ Сегодня, 22:27
, звіт типовий, зв'язано саме з цим, тому що після цих дій почалися проблеми, уточнення платформа стабільна 8.3.16.1148, Бухгалтерія для України, редакція 2.0. (2.0.15.1) оновлення не останє але на звіт не впливає це
Після видалення дублів номенклатури (близько 3200 позицій) при спробі сформувати ОСВ видає помилку Звіт не сформовано! {(14, 2)}: помилка обробки представлення "регистрбухгалтерии хозрасчетный остаткийобороты << >> регистрбухгалтерии хозрасчетныйостаткииобороты використання підсумків вимкнено" Спробував базу протестувати нова помилка - недостатньо пам'яті Можливо хтось з таким зустрічався і підкаже куди копати?
Взяв механізм із документа Повернення товарів від покупця в кнопці заповнити є дві під кнопки заповнити по документу вцілому або додати із документа...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!