Всем привет друзья. Нужно выгрузить данные о номенклатуре из SH5 в 1с Общепит. Есть обработка встроенная. Может кто уже делал подобное. Есть опыт. Потому что у Меня подключение не проходит.
Захожу в код вижу
Если ЭтоLinuxКлиент Тогда //Linux ПараметрыСоединения.СтрокаСоединения = "DRIVER={ODBC Driver 17 for SQL Server};SERVER="+НРег(СерверRK)+";DATABASE="+БазаRK+";LANGUAGE=russian"; Иначе //Windows //ПараметрыСоединения.СтрокаСоединения = "DRIVER={SQL Server};SERVER="+НРег(СерверRK)+";DATABASE="+БазаRK+";LANGUAGE=русский"; ПараметрыСоединения.СтрокаСоединения = "DRIVER={SQL Server};SERVER="+НРег(СерверRK)+";DATABASE="+БазаRK+";LANGUAGE=russian"; КонецЕсли; Иначе ПараметрыСоединения.СтрокаСоединения = СтрокаСоединения; КонецЕсли; ПараметрыСоединения.СУБД = "MSSQLServer";
p.s. Вы если не читаете или не воспринимаете, что вам пишут - сообщите как-то об этом, чтобы люди зря не напрягались.
Я просто не могу понять что не понятно. Давайте по порядку. форма при выполнении блокирует выполнение вообще каких либо операций. Все встало. Пользователь говорит, надо сделать кнопку пауза. Чтобы можно было дальше работать. Это возможо сделать? И как лучше, придумывать что то с паузой или проще сделать все фоновым заданием
можно сделать и паузу - только сущность в том, что паузу нужно сделать на чем то,
Паузу в форме нашей обработки. ЧТобы было понятнее. ЗАпустили обработку. ЗАгрузка пошла, дальше вот хочется паузу сделать. Приостановить действия обработки. Действия пользователя Мне кажется не нуждаются в дополнении. Пользователь захотел сделать паузу, хочет чтобы форма разблокировалась, он мог делать любые действия какие хочет. ФОрмировать отчеты, заполнять номенклатуру. Паузу требуется сделать, чтобы форма разморозилась для выполнения других действий на платформе. Каких? Да разных. Это суть задачи не меняет никак
"выпустить отчет" - тут как бы странно звучит, так как отчет "выпускается" = берет данные из БД и отображает на форме или в Табличный документ, или Таблицу и т.п.. Он служит для отображения данных в БД в удобном виде для анализа - своя классификация, группирока и т.п. Смысла его не выпускать как бы нет - ты или формируешь отчет или нет, и принимается решение до момента "выпустить".
Может быть неправильно выразился. Сформировать.
Цитата(fly @ 13.02.21, 12:33)
ама задача ну явно не расскрыта - что приводит к правильностилюбого из выбранных вариантов.
Есть обработка, она считывается xml файлы, создает на основе этого докуметы записывается проводит. Иногда это затягивается и выполняется долго, и нужна другая работа. Формировать отчеты, списывать что нибудь. Пользователь попросил "Сделать паузу", создать кнопку по ней нажал все остановилось. Поработал, включил дальше
У вас в топике написано - "пользователь увидел какую-то ошибку", теперь выясняется что надо делать что-то другое в базе, через пару дней узнаем еще какие-то подробности, которые в корне меняют суть проблему?
Да Я пидумываю действия. Пользователю нужна кнопка пауза. Варианты действий зачем разные, заполнить что другое, выпустить отчет да что угодно.
Я правильно вас понимаю, сделать эту обработку как фоновую и не думать вообще об кнопках паузы?
Контроль чего? Заложите условия проверки в код, флажок "Останавливаться по ошибке", цикл, по ошибке останавливается, далее кнопка продолжить. Предварительно загружаете файл в таблицу, чтобы понимать какие строки уже обработались. Если пользователь хочет в процессе что-то визуально контролировать, то это утопия, для таких случаев создают визуальную таблицу куда всё грузят, пользователь просматривает и потом выполняется загрузка данных.
Что делать в случае, что документов много и они грузяться замораживая. Форма замерзла а нужно выполнить какие то работы? Как быть в этом случае. Операция длиться 15 минут, после 5 минут выполнения к пользователю пришли сказали нужно кое что сделать. А операция как необратимая термоядерная реакция уже идет. Я бы хотел внедрить что нибудь, что могло приостановить выполнение. Ну как на C#. При копировании можно поставить паузу, и код запуститься с того момета где Я поставил паузу
logist @ Сегодня, 17:01
, Пользователю нужен контроль при выполнении. Есть ли варианты вообще как можно поставить на паузу или нет? Я пока такого не встречал, вот и хотелось понять и уточнить
logist @ Сегодня, 16:18
, Хорошо отошли от фонового задания. Внешняя обработка, выполняет какой то код. Пошли писать документы. На десятом документе пользователь хочет нажать паузу и сделать другие документы. Но форма уже замерзла, Я не могу в ней нажимать
Или это задача не решается?
Задача, есть обработка она выполняет код. Пишет документы из xml. Пока пишет все вкладки встали, пришел клиент говорит Мне надо что то там сделать. Вкладки уже все в заморозке сделать ничего нельзя, можно вызвать прирывания пользователя, но нужно начать с того места где Мы остановились
sava1 @ Сегодня, 14:37
, Идет перебор XML, на основании их пишеться документ. Я хочу добавить кнопку "Пауза" Паузу поставил кое что сделал. Продолжил. Идет дальше перебор
Вот только что пришла в голову идея.
Добавляем кнопку пауза.
В цикле когда все пишеться добавляем условие, проверяет нажатие нопки пауза, при нажатии кнопки пауза флаг ставиться истина его и проверяем. еще цикл - ресурсозатрадо но для развития мысли пойдет. это бессконечный цикл который проверфяет стоит флаг истина или нет. Но тогда форма замерзнет. Делать еще фоновое задание с бессконечным циклом. А есловия выхода ну, придумать осталось
Nikitaje @ Сегодня, 14:41
,
Придумал. Поправте если не так. Создаем реквизит формы булево Создаем кнопку на форме пауза. Кнопка нажата истина нажата повторно ложь
Фоновое задание началось. Длительный цикл
Начало
код
условие если кнопка нажата бессконечный цикл начало условие проверки этого реквизита если ложь тогда заканчиваем цикл идем дальше по коду.
Конец
код
конец
Как считаете, нормально или можно сднлать по лучше?
Всем привет друзья. Конфа самописная. Управляемые формы 8.3 Выполняется фоновое задание, процесс идет польователь работает. при ходи выполнение пишуться документы. Пользователь увидел ошибку, и хочет приостановить задание сделать ручные дейтвия и возобновить с момента остановки. Скажите пожалуйста это возможно вообще?
Здравствуйте друзья. 1с 8.3 обычные формы. На форме создаю процедуру
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) // Вставить содержимое обработчика. //Оповестить("ОбработкаОповещения",Вагоны,ЭтаФОрма); Сообщить(123); Если (ЭтаФорма.ТолькоПросмотр=Истина) Тогда Отказ=Истина; Предупреждение("Документ только для ПРОСМОТРА!!! Запись отменена"); КонецЕсли;
КонецПроцедуры
Записать(РежимЗаписиДокумента.Запись);
Ставлю точку останова не заходит. В модуле есть точно такая же процедура, в нее заходит код выполняется. В чем может быть причина?
Здравствуйте Друзья. Конфигурация самописная с нуля, 8.3, обычные формы Хочу записывать файлы ПДФ в 1с. Создал Справочник с реквизитом "ФайлПДФ" тип ХранилищеЗначений.
Попытка ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФыбораФайла.Заголовок = "Выберите файл"; ДиалогФыбораФайла.ПредварительныйПросмотр = Истина; Если ДиалогФыбораФайла.Выбрать() Тогда ИмяФайла = СтрЗаменить(ДиалогФыбораФайла.ПолноеИмяФайла,ДиалогФыбораФайла.Каталог,""); ОписаниеФайла = ИмяФайла; РасширениеФайла = Прав(ИмяФайла,СтрДлина(ИмяФайла)-Найти(ИмяФайла,".")); АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ДиалогФыбораФайла.ПолноеИмяФайла)); //Если бы нужно было сохранить именно в реквизит базы с типом хранилище значений тогда нужно писать ФайлПДФ = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ДиалогФыбораФайла.ПолноеИмяФайла)); Файл = ОписаниеФайла;
//МойФайл = Новый ДвоичныеДанные(ДиалогФыбораФайла.ПолноеИмяФайла); //ФайлПДФ = Новый ХранилищеЗначения(МойФайл); КонецЕсли; ОбновитьИнтерфейс(); Исключение ПоказатьОповещениеПользователя("Файл не записан!"); КонецПопытки;
Попытка поместить туда. Не знаю на сколько верно но вроде все как по учебнику. Дальше Мне нужно прочитать что там есть. Заархивировать. Ну а дальше делать что в голову придет.
Для Каждого ЭлементПараметр из РасшифровкаСхемаКомпоновкиДанных.Параметры Цикл Если ЭлементПараметр.Имя = Параметр Тогда ЭлементПараметр.Значение = Значение; КонецЕсли; КонецЦикла;
Всем привет друзья. Сталкнулся с проблемой и не могу понять как сделать правильно. Предприятие 1С:Предприятие 8.3 (8.3.16.1063). Конфигурация самописная с нуля Задача: Сделать расшифровку поля другим отчетом, запрос такой же лишь Меняются параметры. Пользуясь гуглом и собирая код из разных частей сделал так Приведу код ниже.
//Отборы Для Каждого Значение ИЗ СтруктураРасшифровки Цикл ДобавитьЗначениеОтбораРасшифровки(Значение.Ключ, Значение.Значение, , ВидСравненияКомпоновкиДанных.ВИерархии); КонецЦикла;
//Получаем оформление из макета МакетОформленияКомпоновкиДанных = ПолучитьМакет("МакетОформленияКомпоновкиДанныхПесок");
РасшифровкаДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; РасшифровкаНастройки = РасшифровкаСхемаКомпоновкиДанных.НастройкиПоУмолчанию;
РасшифровкаКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; РасшифровкаМакетКомпоновки = РасшифровкаКомпоновщикМакета.Выполнить(РасшифровкаСхемаКомпоновкиДанных, РасшифровкаНастройки, РасшифровкаДанныеРасшифровки, МакетОформленияКомпоновкиДанных);
РасшифровкаПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; РасшифровкаПроцессорКомпоновкиДанных.Инициализировать(РасшифровкаМакетКомпоновки, , РасшифровкаДанныеРасшифровки);
РасшифровкаПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; РасшифровкаПроцессорВывода.УстановитьДокумент(Результат); РасшифровкаПроцессорВывода.Вывести(РасшифровкаПроцессорКомпоновкиДанных);
Результат.Защита = Истина;
КонецПроцедуры
Ошибка
Цитата
Ошибка получения данных по причине: Ошибка создания набора данных "НаборДанных1" по причине: Ошибка при исполнении запроса набора данных по причине: {(15, 55)}: Не задано значение параметра "КонецПериода" ЖДНакладнаяВагоны.Ссылка.Д ата МЕЖДУ &НачалоПериода И <<?>>&КонецПериода
Может кто делал подобное на обычных формах и может поделиться опытом? В расшифровку должны попасть 3 параметра, НАчало и конец даты + номер вагона по которому делается расшифровка Форма отчета и макет компановки данных для расшифровски создан отдельно
Выполняю сборку отчета. Хочу чтобы отображался счет Кт. Со связью получилось , отображается. А вот с удержаниеям по исполнительному листу. Задаю счет на дополнительных данных физ.лица, через свойства. Но в конечном итоге он все ровно пустой. Ниже код функции и скриншоты для наглядности.
//Добавлено Ва. Если СтрокаДанных.ВидРасчета.Наименование = "Удержания за сотовую связь сверхлимита" или СтрокаДанных.ВидРасчета.Наименование = "Удержания за междугородние разговоры" Тогда ЛицСчета = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); ЛицСчета.Отбор.Объект.Установить(ДанныеУчета.ФизЛицо);
ЛицСчета.Отбор.Свойство.Установить(ПланыВидовХарактеристик.СвойстваОбъектов.УдержЗаСотовСвязьСверхЛимита); ЛицСчета.Прочитать(); Если ЛицСчета.Количество()=0 Тогда Сообщить("У сотрудника: "+ДанныеУчета.ФизЛицо+" не указан лицевой счет удержания за сотовую связь!"); // Сообщить("У сотрудника: "+ДанныеУчета.ФизЛицо+" не указан лицевой счет удержания по исп. листу!"); Иначе СчетКредитаСотр = ЛицСчета[0].Значение; КонецЕсли;
ИначеЕсли СтрокаДанных.ВидРасчета.Наименование = "Удержания по исполнительным листам сотрудников" тогда //или СтрокаДанных.ВидРасчета.Наименование = "Удержания по исполнительным листам сотрудников" Тогда ЛицСчета = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); ЛицСчета.Отбор.Объект.Установить(ДанныеУчета.ФизЛицо); ЛицСчета.Отбор.Свойство.Установить(ПланыВидовХарактеристик.СвойстваОбъектов.УдержИспЛисты); //ЛицСчета.Отбор.Свойство.Установить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("0011")); ЛицСчета.Прочитать(); Если ЛицСчета.Количество()=0 Тогда Сообщить("У сотрудника: "+ДанныеУчета.ФизЛицо+" не указан лицевой счет удержания по исп. листу!"); Иначе СчетКредитаСотр = ЛицСчета[0].Значение; КонецЕсли; КонецЕсли; //КонецДобавлено СтрокаДанных.СчетДт = ДанныеУчета.СчетДт;
//Добавлено Ва. Если СтрокаДанных.ВидРасчета.Наименование = "Удержания за сотовую связь сверхлимита" или СтрокаДанных.ВидРасчета.Наименование = "Удержания за междугородние разговоры" или СтрокаДанных.ВидРасчета.Наименование = "Удержания по исполнительным листам сотрудников" Тогда СтрокаДанных.СчетКт = СчетКредитаСотр; Иначе СтрокаДанных.СчетКт = ДанныеУчета.СчетКт; КонецЕсли; //Добавлено Ва.
Если мИП_ОСН Тогда СтрокаДанных.ВидНачисленияУдержания = ДанныеУчета.ИПВидНачисленияУдержания; КонецЕсли;
// выполним автозаполнение субконто если это предусмотрено способом отражения в бухучете Если ДанныеУчета.СчетДт <> ПустойСчет Тогда Если ДанныеУчета.НомерСубконтоРаботникиДт <> 0 И НЕ ЗначениеЗаполнено(ДанныеУчета["СубконтоДт" + ДанныеУчета.НомерСубконтоРаботникиДт]) Тогда СтрокаДанных["СубконтоДт" + ДанныеУчета.НомерСубконтоРаботникиДт] = ДанныеУчета.Физлицо; КонецЕсли; КонецЕсли; Если ДанныеУчета.СчетКт <> ПустойСчет Тогда Если ДанныеУчета.НомерСубконтоРаботникиКт <> 0 И НЕ ЗначениеЗаполнено(ДанныеУчета["СубконтоКт" + ДанныеУчета.НомерСубконтоРаботникиКт]) Тогда СтрокаДанных["СубконтоКт" + ДанныеУчета.НомерСубконтоРаботникиКт] = ДанныеУчета.Физлицо; КонецЕсли; Если ДанныеУчета.НомерСубконтоКонтрагентыКт <> 0 И НЕ ЗначениеЗаполнено(ДанныеУчета["СубконтоКт" + ДанныеУчета.НомерСубконтоКонтрагентыКт]) Тогда СтрокаДанных["СубконтоКт" + ДанныеУчета.НомерСубконтоКонтрагентыКт] = ДанныеУчета.Контрагент; КонецЕсли; Если ДанныеУчета.НомерСубконтоПодразделениеКт <> 0 И НЕ ЗначениеЗаполнено(ДанныеУчета["СубконтоКт" + ДанныеУчета.НомерСубконтоПодразделениеКт]) и ПодразделениеФизлица <> Неопределено Тогда СтрокаДанных["СубконтоКт" + ДанныеУчета.НомерСубконтоПодразделениеКт] = ПодразделениеФизлица; КонецЕсли; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!