Основное назначение данной консоли: 1. визуальная отладка запросов; 2. замена обработки УниверсальныйПодборИОбработкаОбъектов.
1. Визуальная отладка запросов При разработке запроса немаловажно, особенно при освоении языка запросов, видеть результат запроса. А именно - важно видеть результат действия различных видов соединений, условий соединений, результат действия и взаимодействия подзапросов, скорость выполнения запроса (в файловой базе и в серверной, с пустым кэшем и с кэшированными данными) и проч. Эта важность усиливается при создании "многоэтажных" и многоуровневых запросов (с глубиной вложенности подзапросов большей или равной 3)!
Данная консоль поможет в решении таких задач. Для этого необходимо только разбить запрос на подзапросы, создать пакет (фактически пакетный запрос), произвести отладку запроса (для получения приемлемых результата и времени выполнения) и собрать итоговый запрос.
2. Замена обработки УниверсальныйПодборИОбработкаОбъектов. На мой (сугубо субъективный) взгляд, обработка УниверсальныйПодборИОбработкаОбъектов хотя и называется универсальной, таковой универсальностью обладает не в полной мере. Поясню: 1. можно произвести обработку только документов или справочников или бизнес-процессов (причем именно ИЛИ); 2. выбор необходимых объектов производится только по значению реквизитов этих объектов по условию И; т.е. отобрать объекты по более сложным условиям (хотя бы по условию ИЛИ) можно только программно, что достаточно сильно увеличивает время обработки выбранных объектов; 3. при программном определении различных дополнительных значений приходится пользоваться не всегда надежными методами, такими как НайтиПоНомеру() или НайтиПоКоду(); 4. при обработке каждого объекта выборки производится получение объекта (методом ПолучитьОбъект()). Получение объекта производится даже в том случае, когда обработка объекта не требуется! А это в значительной степени увеличивает время обработки объектов.
Данная разработка позволяет обойти все указанные (и многие другие) недостатки: для отбора объектов можно использовать самый универсальный инструмент - запрос! Поясню: 1. с помощью запроса можно получить весьма неординарную выборку из объектов различного типа; 2. выбор объектов можно производить по условиям различной степени сложности; но даже если условия отбора объектов не могут быть описаны на языке запросов - есть возможность вывести необходимые реквизиты в результат запроса и обработать выборку программно! Время обработки выборки без вызова метода ПолучитьОбъект() будет зависеть только от оптимальности алгоритма программной обработки; 3. различные дополнительные значения можно определить как параметры пакета или элемента и использовать их без вызова таких методов, как НайтиПоНомеру() или НайтиПоКоду(); 4. получение объекта обработки производится (явно) только при необходимости, что сокращает время обработки объектов.
Помимо названных преимуществ, консоль кода обладает многими другими возможностями, о которых можно узнать, изучив описание обработки и предлагаемые примеры.
Уточнение: примеры не полные и показывают только часть возможностей консоли.
По мере готовности примеров они будут выложены для всеобщего скачивания.
SeraArej, копію бази перед цим зробили? Мова йшла про те, щоб змінити значення константи, а не її тип!!! Тобто, якщо вона у Вас стояла "Да", змініть на "Нет"!
Цитата
Дуже дякую
Ще для цього в нас є спеціальна кнопка І ще Вам на майбутнє: пишіть назву та версію конфігурації!!! А то врядчи хто буде допомагати!
Ainvo Copy - классическое решение для создания резервных копий любых данных. Вы можете легко сохранить результаты своей работы, видео, графику и другие файлы. Полный контроль над процессом резервного копирования. Улучшенный алгоритм копирования файлов. Улучшенный алгоритм обнаружения ошибок копирования. Автоматический запуск программы при старте операционной системы. Копирование файлов и каталогов с использованием относительных путей. Для большей надежности хранения Ваших данных, программа скопирует их в произвольное количество локальных и сетевых папок компьютера. Ainvo Copy позаботится о том, чтобы свободное место на дисках Вашего компьютера расходовалось экономно. Воспользуйтесь опцией "Сжатие задания". Помнить о необходимости резервного копирования очень тяжело. Создайте произвольное количество расписаний копирования и занимайтесь любимым делом. Вас утомляет большое количество диалогов и настроек других программ? Для создания задания просто перенесите мышью необходимые файлы в окно программы. Вы хотите увидеть, все ли файлы задания были скопированы? Воспользуйтесь протоколом. Он сохранит для Вас отчет о выполнении задания.
У меня была ситуация, когда сбилась нумерация и я "перекодировал" всю номенклатуру. А пользователи (в сбыте) заполняя заказы выбирали номенклатуру по коду, а не по наименованию. Так что послушав кучу "спасибо" - переисправляля коды обратно. Так что с этим тоже аккуратней
http://www.ucrf.gov.ua/uk/imei_base/ Перевіряються лише телефони, що знаходяться на території України. Система перевірки працює з 15 квітня 2009 р. База даних містить дані про телефони починаючи з цієї дати.
Можно проверить свой номер. Если телефона нет в базе, то по новым правилам телефон будет работать в течении трех месяцев, во время которых надо его зарегистрировать в УДЦР. Інформація для населення щодо мобільних телефонів http://mikolaiv.ucrf.gov.ua/uk/press/news/MobilT/
Такая ошибка может возникнуть при попытке выполнить в Конфигураторе сохранение данных. Для её устранения необходимо найти файл «1CV7FILE.LST», содержащий список сохраняемых файлов. Обычно он находится в каталоге «C:\Program Files\1Cv77\BIN», но, если вы устанавливали 1С:Предприятие в другой каталог, там будет и файл со списком. Ошибка могла возникнуть по двум причинам: у файла «1CV7FILE.LST» установлен флажок «только чтение», для устранения проблемы достаточно снять этот флажок, или у вас нет доступа на запись в каталог «C:\Program Files\1Cv77\BIN», это может исправить ваш системный администратор.
Если по каким-то причинам нет возможности открыть доступ к «C:\Program Files\1Cv77\BIN», можно решить проблему другим способом, скопировать файл «1CV7FILE.LST» в каталог с базой данных, к нему обязательно открыт доступ на запись и создание архива будет проходить без возникновения ошибки.
Прочитал статью "Универсальное решение работы с Ексель". И опять чтение происходит путем перебора ячеек листа Ексель. Для больших файлов это очень медленно. Решил просмотреть ВСЕ обработки из рубрики 1С + Excel с целью определить - стоит ли писать о способе чтения Excel файла которым сам пользуюсь.
Итог - почти во всех обработках происходит чтение файла путем перебора каждой ячейки выбранного диапазона листа Ексель. Только в _http://infostart.ru/projects/3962/ - использует вариантный массив, а также чтение с использованием ADO. И то вариантный массив читается поячеечно.
Много обработок с закрытым кодом - о них ничего сказать не могу.
Но, большинство обработок - законченные решения выполняющие различные функции, а не только ПРОСТОЕ чтение файла. (искренний респект и уважение авторам) Я же предлагаю всего лишь функцию быстрого чтения файла Excel. Готовых обработок в этой области не выкладываю - дублировать существующие нет смысла, или они явно не дотягивают по функционалу до уже выложенных
Итак. При чтении файла Excel я использую вариантный массив. Он позволяет быстро получить ВСЮ таблицу листа в память, а также получать данные массива целыми колонками. Тем самым время на чтение области файла Excel в таблицу значений сокращается в десятки раз.
Если ЛистЭксель = Неопределено Тогда ЛистЭксель = ПолучитьCOMОбъект(,"Excel.Application"); КонецЕсли; Если ВсегоСтрок = 0 Тогда ВсегоСтрок = ЛистЭксель.Cells.SpecialCells(11).Row; КонецЕсли; Если ВсегоКолонок = 0 Тогда ВсегоКолонок = ЛистЭксель.Cells.SpecialCells(11).Column; КонецЕсли; Если ТЗ = Неопределено Тогда ТЗ = Новый ТаблицаЗначений; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; КонецЕсли; Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла;
Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок)); Данные = Область.Value.Выгрузить();
Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; ЛистЭксель = Неопределено; Возврат ТЗ; КонецФункции
Комментировать функцию, думаю, нет необходимости. Вот собственно и все, что я хотел сказать.
Работал с клиентом по rdp. Ночью, конечно же. Как это обычно бывает у фрилансера: кидают на мыло вопросы, дают логин и пароль - сиди, разбирайся до утра, почему что-то не проводится, проводится не так, не попадает в нужный отчет...
Все бы было хорошо, но в этот раз второпях выделили мне не того пользователя, не с правами администратора, а с правами какого-то удаленного оператора, и передо мной открылся по максимуму урезанный интерфейс «восьмерки», без возможности смены. Свертываю 1С – вижу абсолютно пустой рабочий стол, даже кнопка «Пуск» отсутствует. Сразу видно, сисадмин постарался, чтобы этот самый «удаленный оператор» не лез куда ему не нужно, не смотрел, что не нужно, и кроме пары рабочих документов в 1С ничего не мог открыть. Но мне-то нужно! Нужен конфигуратор, например. Даже – не конфигуратор: достаточно «прощупать» базу собственным отчетом, который бы выводил то, что мне нужно, в табло. Но вот вопрос: как его забросить на компьютер, где сделано все возможное, чтобы этого не допустить?
Все гениальное возникает на стыке технологий. Впрочем, и абсурдное тоже. Интуитивно тыкаю кнопку «Файл» в меню 1С – единственное место на экране, где хоть что-то есть. Вижу пункт «Новый», вижу в списке среди прочего html-документ…
Решил попробовать: вдруг разработчики 1С таки оставили возможность «пошалить». Перехожу к закладке «Текст», стираю всю сгенерированную там муть, и пишу простенький код:
Затаив дыхание, щелкаю по просмотру… На экране появляется веселое окошечко с приветливым заголовком Microsoft Internet Explorer. Ну надо же! А я и не надеялся…
Ну чем Explorer с включенными скриптами - не лазейка на закрытый компьютер через rdp? При желании, я его теперь даже отформатирую удаленно!
Но форматировать пока рано: нужно закинуть туда всего лишь свой отчетик. Для этого использую мой любимый файлообменник, а в открытом для смелых идей компоновщике web страниц вместо жизнерадостного алерта с «хелловорлдом» пишу более претенциозное: document.location=”http://www.webfile.ru”; Жму просмотр, забираю скинутый только что свой отчет, сохраняю на рабочем столе для разнообразия. Не люблю пустующих рабочих столов…
К счастью, в интерфейсе удаленного оператора работа с внешними отчетами была не закрытой, и я скоро вывожу в табло те данные по регистрам, которые меня интересуют, а параллельно работает изощренная фантазия...
Что мешает таким же образом, через файлообменник кинуть на удаленный, закрытый от всего (почти от всего) компьютер, скажем, Total Comander, настроить в нем ftp, найти их базу и выгрузить куда-нибудь? Дома-то работать сподручнее! Конечно, только если это – сервер. А если не сервер, то значит, там есть сеть, а в сети тоже можно найти что-нибудь интересное…
Впрочем, вместо тотала можно забросить и что-то более веселенькое, да все, что угодно! Забросить и запустить прямо с рабочего стола, например, собственную программу, работающую с реестром… А можно и не с рабочего стола, а прямо из эксплорера, благо, он сам дает возможность не оставлять следов, когда спрашивает по поводу exe-файла, сохранить его, или запустить… Ну чем не взлом?
Кульминацией всего было то, что я вспомнил про свою переписку когда-то с одним хаккером, и про его восхищенные излияния про возможность использования в эксплорере разных ole-объектов, например, вот этот: ActiveXObject("Scripting.FileSystemObject"); Зачем, спрашивается, коммандер, когда есть такое…
Кстати, очень легко можно было бы этот комп завесить, если бы на то подвернулся повод. Как, спрашивается, проще всего завесить Windows – если не созданием этих самых windows? Для этого, в полюбившемся нам компоновщике меняем вторично содержимое нашего скрипта, и вместо window.location ставим:
Попробуйте у себя ради прикола, конечно, снизив число в цикле хотя бы до 5…
Но поговорим еще о скриптах. Поскольку могучий Эксплорер поддерживает и WBScript, то ни что не мешает отправить сервак на перезагрузку, если незадачливый работодатель сделал вас всего лишь удаленным оператором. Понятно, что такая процедура – весьма не желательна в разгар рабочего дня, когда на сервере висит куча других удаленных операторов и не только…
ExitWindows, может, в XP и не сработает, а вот rundll32 krnl386.exe,exitkernel должен
Но не будет столь экстримичны, для начала, ограничимся запретом мыши на сервере:
<script language="vbscript"> <!-- Set Shell=CreateObject("WScript.Shell") Shell.Run("rundll32 mouse,disable") --> </script>
А если вы - приверженец старой школы, и считаете мышь вообще вредной ошибкой в истории компьютеров, то запретите ее навечно, прописав это в реестр с помощью того же VB!
Конечно, делать я ничего такого не стал, а клиенту утром сообщил, что их сисадмину стоит серьезно обеспокоиться. Собственно, и сюда публикую только для того, чтобы коллеги, занимающиеся администрированием серверов 1С, учли подобную лазейку и предприняли необходимые меры.
Личный сайт автора статьи: _http://www.belkamag.ru/
Бухгалтерия 8. для Украины релиз 1.1.12 В релизе планируется: - новый механизм ввода остатков; - развитие механизмов переноса остатков из "1С:Бухгалтерия 7.7"; - обновление регламентированной отчетности; - исправление ошибок.
Зарплата и Управление Персоналом для Украины релиз 2.1.9 В релизе планируется: - обновление регламентированной отчетности; - исправление ошибок.
Управление торговым предприятием для Украины релиз 1.1.4 В релизе планируется: - обновление регламентированной отчетности; - исправление ошибок.
02.10.2009
Регл. отчетность для Комплексной конфигурации 7.7 для Украины 09q3001 Регламентированная отчетность для конфигураций "Бухгалтерский учет 7.7 для Украины" и "Производство+Услуги+Бухгалтерия 7.7 для Украины" 09q3001 В обновлении планируется исправление выявленных ошибок.
05.10.2009
Бухгалтерский учет 7.7 для Украины 7.70.276 В релизе планируется: - реализовать вывод на печать титульного листа Кассовой книги; - реализовать вывод на печать ПКО и РКО в формате А5; - согласно постановлению НБУ от 29.04.2009 N 252 реализовать отчет "Журнал регистрации кассовых документов" КО-3 и КО-3а; - реализовать возможность передавать необоротный актив на подготовку к реализации.
Комплексная конфигурация 7.7 для Украины 7.70.030 В релизе планируется: - реализовать вывод на печать титульного листа Кассовой книги; - реализовать вывод на печать ПКО и РКО в формате А5; - согласно постановлению НБУ от 29.04.2009 N 252 реализовать отчет "Журнал регистрации кассовых документов" КО-3 и КО-3а; - реализовать возможность передавать необоротный актив на подготовку к реализации.
Производство+Услуги+Бухгалтерия 7.7 для Украины 7.70.027 В релизе планируется: - реализовать вывод на печать титульного листа Кассовой книги; - реализовать вывод на печать ПКО и РКО в формате А5; - согласно постановлению НБУ от 29.04.2009 N 252 реализовать отчет "Журнал регистрации кассовых документов" КО-3 и КО-3а; - реализовать возможность передавать необоротный актив на подготовку к реализации.
не вижу проводок при проведении расходной или приходной накладной
А они точно проводятся? Может быть вываливаются ошибки, документ записывается но не проводится? Галочка в журнале документов напротив "проводимого" документа стоит?
MATEVI, а если, например, у тебя в РН будет 2 строчки с одинаковым товаром?
Например:
В РН: Товар1 - 4 Товар1 - 5
В Регистре (остаток): Товар1 - 6
У тебя спишется 10 и не выдаст ошибки, т.к. в РН нету группировки по товару. Или я не прав? И зачем строки:
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная ПО РасходнаяНакладнаяТовары.Ссылка = РасходнаяНакладная.Ссылка
?
///////////////////////////////////////////
Теперь ещё вопрос по моему запросу .
ВЫБРАТЬ РасходнаяНакладнаяРасход.Номенклатура КАК НоменклатураВДокументе, СУММА(РасходнаяНакладнаяРасход.Количество) КАК КоличествоВДокументе, ПартииОстатки.Номенклатура КАК НоменклатураВРегистре, ПартииОстатки.Склад КАК СкладТовара, ЕСТЬNULL(ПартииОстатки.КоличествоОстаток, 0) КАК Остаток, ЕСТЬNULL(ПартииОстатки.СуммаОстаток, 0) КАК Сумма ИЗ Документ.РасходнаяНакладная.Расход КАК РасходнаяНакладнаяРасход ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Партии.Остатки(&МоментВремени, &Склад = Склад) КАК ПартииОстатки ПО РасходнаяНакладнаяРасход.Номенклатура = ПартииОстатки.Номенклатура И РасходнаяНакладнаяРасход.Ссылка.Склад = ПартииОстатки.Склад
СГРУППИРОВАТЬ ПО РасходнаяНакладнаяРасход.Номенклатура, ПартииОстатки.Номенклатура, ПартииОстатки.Склад, ПартииОстатки.КоличествоОстаток, ЕСТЬNULL(ПартииОстатки.СуммаОстаток, 0)
Вроде как получаю то что надо. Но мне не надо группировки
Распределенная база данных не позволяет в реальном времени работать с одной базой данных. Если база распределённая - то кусочек её будет находится в офисе, другой на предприятии. Чтобы базу объединить - нужно делать обмен данными.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!