А Альф обещал, что формекс на 64 платформе будет работать корректно?
Насколько помню то о разрядности там разговоров вообще то не было... Проэкт был приостановлен еще в 2010-м. Последняя выпущеная версия 2.0.5.104 На оф.сайте на данный момент "Создание проекта formex.dorex.ru временно приостановлено... Готовы к сотрудничеству..."
Вот, не могу поддержать мнение Ув.Acid (мое мнение - это чисто мое мнение его можете не брать во внимание) по одной причине, ошибка которая "вылетела" больше указывает на ошибку в памяти чем на ошибку SQL, ругается Винда, а не Скуль... Был еще разговор о прямых запросах:
Цитата(vl185 @ 15.11.16, 11:01)
Что можно было, было оптимизировано прямыми запросами.
Базы были перенесены со старого сервера на win 2003 на котором подобных траблов не было.
И что, как только перенесли и сразу:
Цитата(vl185 @ 23.11.16, 13:04)
Вылетали как на 2008 скуле так и 2000м.
... или все-таки после вноса изменений в эту единичную конфигурацию.
Formex.dll последней версии ? Перезаписать его пробовали ?
К стати, у Формекса есть такая штука Сервис.ОбработкаОжидания, возможно она и приводит к ошибке, как вариант. Возможности Формекса не только что-то красить, там довольно таки много разного функционала.
Единственная ошибка которая не ушла с переносом баз на 2000 скуль это самопроизвольный вытет из одной из четырех баз с ошибкой
Цитата(Acid @ 23.11.16, 14:11)
BkEnd.dll вроде как тоже патченный есть
Три работает Ок, а одна "болеет" ! Думаю что конфигурации разные и программист использовал, скорее всего, еще какую-то "приблуду" которая "делает конфликт" в памяти...
Моменты вылета на одном и том-же этапе или отловить нереально ? Хотя что там отлавливать, если что-то помещено в глобальную переменную и к этому нечто идет произвольное обращение... В опциях SQL все одинаково ?
А протокол используется http или https? Если второе, то у v7plus.dll с ним возможны проблемы...
Согласен на все 100 %, но проблемы будут во всех случаях. Не буду останавливаться конкретно на проблемах при работе с этой "штучкой", но основная это обрезка данных (на просторах валом инфы о проблемах). Могу предложить такой вариант:
Функция ОтправитьЗапросПост(СекретныйКлюч,прИмяФайла)//Имя файла - "d:\1cv77bd\Temp\test.json"
лпСайт="https://lc.epicentrk.com.ua/api/292/"+СекретныйКлюч+"/INVOICE_DATA";//"https" должно быть, я так считаю
WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"utf-8"); //Отключаем проверку сертификата Скрипт= СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Скрипт.AddObject("WinHttp",WinHttp); Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects //Сам запрос WinHttp.Open("POST", лпСайт, 0); WinHttp.SetRequestHeader("Accept-Language", "ru");// думаю что "ru"... WinHttp.SetRequestHeader("Accept-Charset", "utf-8"); WinHttp.SetRequestHeader("Content-Language", "ru"); WinHttp.SetRequestHeader("Content-Charset", "utf-8"); WinHttp.SetRequestHeader("Content-type", "application/octet-stream; charset=utf-8;");//Другая сторона должна понять входные данные см.oADOStream, а вот если вдруг не поймет (в чем у меня есть сомнения...), тогда придется указать явное без указания параметров выше: //WinHttp.setRequestHeader("Accept", "text/json"); //WinHttp.setRequestHeader("Content-type", "text/json"); //при явном строка ниже не нужна: WinHttp.SetRequestHeader("Content-length", "" + oADOStream.Size);
Попытка WinHttp.Send(oADOStream); //При явном - строку запроса нужно получить из файла, тогда получится: // WinHttp.Send(строка запроса из файла); лпОтвет = WinHttp.ResponseText(); Сообщить(лпОтвет) Возврат 1; Исключение Сообщить("Ошибка: "+ОписаниеОшибки(),"!"); Возврат 0; КонецПопытки; КонецФункции // ОтправитьЗапросПост
Цитата(nik389 @ 18.11.16, 16:12)
попробуйте curl, для ваших целей самое то..
Поделитесь пожалуйста опытом его использования, для меня как-то сложно...). Я видимо чего-то не понял из описаний Как можно с помощью курл реализовать - приведите пример, конкретно к задаче этой темы ?
inna.innainna84 @ Сегодня, 1:52
, Инна, не лезьте туда, плиз... Я бы Вам порекомендовал это сделать еще в предыдущей теме, но там все настолько запущено, что ппц. Используйте то что имеете. Не лезьте в наследие авантюризма по регистру "Обороты продаж" дабы не породить еще больше проблем. Пройдет время, изучите конфигурацию, наберетесь опыта и только тогда будете корректировать, Вам пока еще рановато. По добавлению данных в регистр Вам нужно заключение, это смогут сделать только специалисты (по результатам полного анализа), все остальное породит только новые грабли.
ЗЫ: Мы с Вами когда-то по этому поводу уже общались. Форум Вам реально в Вашей ситуации не поможет.
Данные не могут быть разными или непонятными. При запросе Фирма = Регистр.ПартииТоваров.Фирма; и Фирма = Регистр.ПартииТоваров.ТекущийДокумент.Фирма; возвращается одно и тоже. В первом случае лезем в регистр, а во втором в документ который в этот регистр сделал запись. Сами посмотрите в движения документа по регистру (правая кнопка мыши на проведенный ПН или РН, движения документа, партии товаров, Ок), в измерение фирма пусто или записана фирма ? Если записана, значит смотрите в регистр, а если все же пусто тогда в документ. У Вас реквизит "Фирма" общий реквизит документов.
А попробуйте вставить условие в запрос, только по ПН и РН, тогда другие доки вообще не попадут в запрос и не нужно будет условие в функции
//Добавьте условие |Условие((ТекДокумент.Вид() = ""РасходнаяНакладная"") или (ТекДокумент.Вид() = ""ПриходнаяНакладная"")); //Измените функцию: |Функция Сумма = Сумма(Оборот) когда (Оборот<>0);
Цитата(igmig65 @ 12.11.16, 7:03)
Ну и по Виду операции, тоже можно добавить условие, чтобы возвраты не попадали в запрос вообще.
//Перед формированием текста запроса добавьте в список нужные коды операций, исключите те которые ниже: СписКодыОпераций=СоздатьОбъект("СписокЗначений"); СписКодыОпераций.ДобавитьЗначение(ПродажаКупленногоТовара); СписКодыОпераций.ДобавитьЗначение(ПродажаКупленногоПереданногоТовара); СписКодыОпераций.ДобавитьЗначение(РозничнаяПродажаКупленногоТовара); СписКодыОпераций.ДобавитьЗначение(ВозвратТовараОтПокупателя); СписКодыОпераций.ДобавитьЗначение(ВозвратКупленногоПереданногоТовара); СписКодыОпераций.ДобавитьЗначение(ВозвратРозничныйКупленногоТовара); СписКодыОпераций.ДобавитьЗначение(ПродажаПринятогоТовара); СписКодыОпераций.ДобавитьЗначение(ПродажаПринятогоПереданногоТовара); СписКодыОпераций.ДобавитьЗначение(РозничнаяПродажаПринятогоТовара); СписКодыОпераций.ДобавитьЗначение(ВозвратПринятогоТовараОтПокупателя); СписКодыОпераций.ДобавитьЗначение(ВозвратПринятогоПереданногоТовара); СписКодыОпераций.ДобавитьЗначение(ПродажаУслуги); СписКодыОпераций.ДобавитьЗначение(СторноПродажаУслуги);
//Добавьте переменную; |КодОперации=Регистр.ПартииТоваров.КодОперации; //Также условие |Условие (КодОперации В СписКодыОпераций);
От себя повторяю еще раз: У Вас в Регистр.ПартииТоваров.Фирма пусто ! Используйте Фирма = Регистр.ПартииТоваров.ТекущийДокумент.Фирма;
sava1 @ Сегодня, 16:43
,
Цитата(sava1 @ 12.11.16, 16:43)
в семерке выборка из регистров практически оптимальна
Могу согласиться но только частично, если Без итогов в 2-3 этажа то разница не очень ощутима, но вот если с отбором итогов и + многоэтажность - прямые выиграют.
данные с приходной(возврат от покупателя) не записываются в регистр оборот товара
Хммм... Действительно у Вас в конфигурации отсутствует документ Возвратная накладная (как покупателя, так и поставщику)... Движения по возвратам реализованы документом приходная накладная
Все остановочка: мухи отдельно, котлеты отдельно.
Цитата(inna.innainna84 @ 04.11.16, 15:33)
... застряла на весе товара в таблице во всех секциях поставила Запрос.РасхОстатокТовара/2*Запрос.Вес, где Запрос.Вес должен вытягивать значение из самого справочника товаров(т.е.|Вес = Регистр.ПартииТоваров.Товар.Вес;) И не получается. Подскажите как решить эту проблему.
inna.innainna84 @ Сегодня, 2:31
, Вы правы, в Измерение "Контрагент" в модуле проведения действительно пишется не покупатель, а поставщик. Кроме того, в измерении Фирма пусто... А почему бы Вам для этого отчета не воспользоваться регистром "ОборотПродаж" ?
Дело в том что конструкция: Покупатель=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Контрагент на файловой версии 1 С очень долго будет отрабатывать + сам регистр "ПартииТоваров" тяжелый. Попробуйте так:
ТекстЗапроса = " |Период с ВыбНачПериода по ВыбКонПериода; |Товар = Регистр.ОборотПродаж.Товар; |Контрагент = Регистр.ОборотПродаж.Контрагент; |ТекДокумент = Регистр.ОборотПродаж.ТекущийДокумент; |Фирма = Регистр.ОборотПродаж.ТекущийДокумент.Фирма; |Вес = Регистр.ОборотПродаж.Товар.Вес; |Категория = Регистр.ОборотПродаж.Товар.КатегорияДляГруппировки; |Количество = Регистр.ОборотПродаж.Кво; |Оборот = Регистр.ОборотПродаж.ПродСтоимость; |Функция КолРасход = Сумма(Количество); |Функция Сумма = Сумма(Оборот); |Функция ВесРасход = Сумма(Запрос.КолРасход * Вес + Количество - Количество); |Группировка Фирма; |Группировка Категория без групп; |Группировка Контрагент без групп; |Группировка Товар без групп; |Группировка ТекДокумент; |Условие(Фирма = ВыбФирма); |Условие(Контрагент в ВыбКонтрагент); |Условие(Категория в ВыбКатегория);";
Отработает значительно быстрее и выведет только реализацию и возвраты.
logist @ Вчера, 17:31
, Ув, logist, как и обещал выполняю свои обещания исправиться.
Ув. inna.innainna84, итак начнем:
При подготовке отчета, Вы имеете дело с регистром остатков - "ПартииТоваров". Данный регистр имеет: 1. Измерения: Фирма, Товар, Контрагент (Вы упустили Фирму и Контрагент, а они тоже нужны); 2. Ресурсы: ОстатокТовара; 3. Реквизиты: Оборот;
Соответственно мы должны обратиться к измерениям, ресурсам и реквизитам (дополнительным реквизитам, если тип справочник) задав им переменные:
Для получения информации по ресурсам и реквизитам используются функции:
ТекстФункций = " |Функция КолРасход = Расход(Количество) когда (ТекДокумент.Вид() = ""РасходнаяНакладная""); |Функция Сумма = Сумма(Оборот) когда (ТекДокумент.Вид() = ""РасходнаяНакладная""); |Функция ВесРасход = Сумма(Запрос.КолРасход * Вес + Количество - Количество);";
Обратите внимание что в функциях КолРасход и Сумма используется доп условие "Когда". Это для того что бы итоги отбирались только по указанному виду документов. Дело в том что документ Приходная накладная делает движения по приходу, т.е. движений по расход в регистре по данному виду нет. В итоге в функции Сумма у Вас не будет двоиться. По поводу функции ВесРасход то это один из методов борьбы с фичей 7.7. останавливаться здесь не буду. Далее задаем группировки:
ТекстГруппировок = " |Группировка Фирма; |Группировка Категория без групп; |Группировка Контрагент без групп; |Группировка Товар без групп; |Группировка ТекДокумент;";
И условия:
ТекстУсловий = " |Условие(Фирма = ВыбФирма); |Условие(Контрагент в ВыбКонтрагент); |Условие(Категория в ВыбКатегория);";
В итоге:
ТекстЗапроса = ТекстПеременных+РазделительСтрок+ТекстФункций+РазделительСтрок+ТекстГруппировок+РазделительСтрок+ТекстУсловий; Сообщить(ТекстЗапроса); Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; //И в конце уже заполнение выходной таблицы по группировкам 1 - Фирма, 2 - Категория, 3 - Контрагент, 4 - Товар, 5 - ТекДокумент
лпТаблЗнач = СоздатьОбъект("ТаблицаЗначений"); Для лпКолонка = 1 по лпКолонки Цикл лпТаблЗнач.НоваяКолонка(); КонецЦикла; Состояние("Чтение файла xls..."); лпСчСтрок = 0; лпРазмерФайла = лпСтроки; лпМассив = СоздатьОбъект("СписокЗначений"); Для лпСчСтрок = arr.lbound(2) По arr.ubound(1) Цикл Если лпСчСтрок > лпРазмерФайла Тогда Прервать; КонецЕсли; лпТаблЗнач.НоваяСтрока(); Для лпСчКолонок = arr.lbound(1) По arr.ubound(2) Цикл лпЗначение = ВернутьБезЛишнихПробелов(arr.getItem(лпСчСтрок,лпСчКолонок)); лпТаблЗнач.УстановитьЗначение(лпСчСтрок,лпСчКолонок,лпЗначение); УстановитьМаксДлинуВМассив(лпМассив,лпЗначение,лпСчКолонок) КонецЦикла; Если (лпСчСтрок % 100 = 0) Тогда Состояние("Обработано строк: "+лпСчСтрок+" из: "+лпРазмерФайла); КонецЕсли; КонецЦикла; УстановитьПараметрыКолонкиШирина(лпМассив,лпТаблЗнач); Excel.Quit(); scr = 0; arr = 0; Возврат лпТаблЗнач; КонецФункции // ПрочитатьXLSФайлVBA(прФайл)
На выходе у Вас получается Таблица значений, ее можете вогнать в глобальную переменную. Смысл в том, что в работаем только с объектами 1 С. После вывода на экран можете работать с глобальными и предопределенными во время заполнения объектами/процедурами (с глобальными только до тех пор пока открыта форма отчета). Т.е. фактически получаем то что Вы хотите:
Цитата(Lunatik_5 @ 31.10.16, 23:08)
1. Есть excel файлы информация в которых может меняться. Есть пользователи которые не занимаются этими файлами и вообще не знают где они находятся, но им нужно сформировать печать, где часть информации это данные из 1с, а другая часть это excel файл. Все это вывести при нажатии кнопки печать в стандартную привычную таблицу, которую потом можно распечатать.Одной секцией я вывожу информацию из 1с, а затем следующей хотел через ole объект вывести информацию из excel файла.
Почему предлагаю Таблицу значений, думаю понятно: сможете в ней искать все что Вам необходимо (коды номенклатуры, названия - если не будете пробелы убирать см. функцию ВернутьБезЛишнихПробелов())
В моїй практиці пригадую було колись... Наприклад: 30-го числа виникають зобов'язання по сплаті ПДВ. Так от, для того щоб ці зобов'язання "погасити" достатньо 30-м числом виписати видаткову накладну платнику фіксованого податку, а вже наступного дня, але іншого звітного місяця зробити повернення покупця. По такій схемі ПДВ до бюджету не сплачується взагалі, оскільки платнику фіксованого податку ПДВ не нараховується, а платник ПДВ звільняється від його сплати в звітному періоді.
Що буде відбуватися при нашому чинному законодавстві, якщо дозволити виписування податкової лише на підставі Рахунку ?
Мудрили наші "законотворці" та зробили для себе (чи під себе) решета в податковому законодавстві, щоб можна було в будь-яку дірку пролісти, того воно в нас так.
При спілкуванні з контролюючими органами, виявляється що для того щоб звичайного дядька тр..хнути за "паркування не в тому місці" вистроюється черга бажаючих... А от щоб таке зробити з більшим дядьком - ще до початку перевірки знаходяться такі проблеми, що перевіряючі наперед приходять підписувати акт перевірки в якому все Ок.
В отчете ВыбФирма не отбирается. Выборка есть только по складам. Т.е., у Вас 1 склад не может принадлежать 2-м фирмам. Думаю что у Вас это не единственный отчет в конфигурации - порвало где-то еще. Если у Вас имеется принадлежность одного и того ж склада 2-м разным фирмам, то как вариант (если небольшой период ведения совместного учета): 1. создайте новый склад; 2. С помощью Uchoice.ert отберите документы по новой фирме где совмещен склад и установите новый; 3) Перепроведите документы за этот период.
Есть и другой вариант: можно переписать все подобные отчеты
Vofka @ Сегодня, 12:03 , Кажется нашел как прицепить.
Для Win64 копировать с заменой в каталог C:\Windows\SysWOW64 Для Win32 копировать с заменой в каталог C:\Windows\System32 После этого перезагрузиться, регистрация не требуется.
Vofka @ Вчера, 17:36 , Да ну их ... Форум без их статеек, как мне, и так привлекателен, тем более что мы не рассматриваем выложенные у них творения. Убрать все что связано с выложенными у них статьями и более не выкладывать - мое мнение.
Хотя, если разобраться стат еще должен Вам платить за рекламу.
А что если: 1. Смотреть в задолженность в разрезе договоров, если задолженность только по 1-му договору - то подставлять только его независимо от того что написано в назначении. 2. Предоплату искать по Вашему алгоритму по вхождению "попередня", "предоплата" в строке без пробелов с поиском по номеру договора; 3. Попробовать вычислить "просроченную" задолженность по договорам, ведь может быть 1 платеж по нескольким и распределить сумму по ним.
В любом случае, оплата может быть и согласно счета, и как пример "за медикаменти та вироби медичного призначення" без указания № договора или счета, и еще как угодно, залезет 1 строчкой в выписку, а разделить нужно на несколько.
Мои бухи все правят ручками, привыкли наверное, подобного не просили (а может просили, только им когда-то вежливо отказали)
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!