AnryMc @ Сегодня, 12:56
, Очень редко, обычно что-то экзотическое "Подготовка к передаче ОС" - в провоках "Списана амортизация", "Списана ост. стоимость" добавлял автоматическое определение склада В одной из организаций приняли на баланс большое количество оборудования (пара сотен тыс. единиц), после этого "Закрытие месяца" начало проводиться вечность. Что-то с этим делал чтобы было приемлемое время расчета амортизации В одной из организаций захотели проводить инвентаризацию не по инвентарным номерам, а клеить штрих-коды и просто сканировать их. Дописывал на эту тему
8.3 можно запустить в режиме обычных форм. И тогда можно будет воспользоваться обработками. Для этого небходимо установить параметр запуска /RunModeOrdinaryApplication
При выборе базы 1С спрва нажмите кнопку "Изменить"
Первую страницу пропускаем (Далее)
На второй странице в поле "Дополнительные параметры запуска" вставляем параметр /RunModeOrdinaryApplication
Запускаем 1С. 1С запускается без интерфейса, но через п.меню "Открыть" можно открыть и использовать обработку
После того как закончите работать с обработкой, зайдите опять в "Дополнительные параметры запуска" и уберите оттуда параметр /RunModeOrdinaryApplication
chernomoretc_cn @ Вчера, 18:25
, Якщо у вас база на sql і ви знаєте її структуру, проіндексуйте реквізит "Заказ" прямо у таблицях бази через SQL Server Management Studio. Перший запит почне працювати із нормальною швидкістю
Доброго дня Додав у сховище дві обробки: вивантаження журналу реэстрації та консоль аналізу журналу реєстрації. Після модерації вони будуть доступні. З їх допомогою можна отримати інформацію по активності користувачів
Обробки з infostart Спочатку скористайтесь обробкою вивантаження журнала реєстрації, отримаєте файл Потім із консолі аналізу відкрийте цей файл, налаштуйте групування та поля і сформуйте звіт
За допомогою обробки отримайте ім'я регісту у базі SQL
Запрос розрахунку розміру таблиць з фільтром по регістрам накопичення (t.name LIKE '_AccumRg%)
SELECT t.name AS TableName, s.name AS SchemaName, p.rows, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables t INNER JOIN sys.indexes i ON t.object_id = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.name LIKE '_AccumRg%' GROUP BY t.name, s.name, p.rows ORDER BY TotalSpaceMB DESC, t.name
Виконайте запит у sql server management studio
Перед першим виконанням запиту бажано оновити статистику
ВЫБРАТЬ РАЗЛИЧНЫЕ АналитикаНоменклатуры.Номенклатура КАК Номенклатура, АналитикаНоменклатуры.Склад КАК Склад, УчетСебестоимости.Период КАК Период, УчетСебестоимости.Регистратор КАК ДокументПоступления, УчетСебестоимости.КоличествоПриход КАК Количество, УчетСебестоимости.СтоимостьРеглПриход КАК Стоимость ПОМЕСТИТЬ ТЦен ИЗ РегистрНакопления.СебестоимостьТоваров.Обороты(, , Регистратор, РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)) КАК УчетСебестоимости ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры ПО (УчетСебестоимости.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики) //----------------------------------------------------------------------------------------------------------------------- ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Т.АналитикаУчетаНоменклатуры, МАКСИМУМ(Т.Период) КАК Период ИЗ РегистрНакопления.СебестоимостьТоваров КАК Т ГДЕ Т.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах) И Т.КоличествоПриход > 0 И Т.СтоимостьРеглПриход > 0 СГРУППИРОВАТЬ ПО Т.АналитикаУчетаНоменклатуры ) КАК ПоследнийПриход ПО УчетСебестоимости.АналитикаУчетаНоменклатуры = ПоследнийПриход.АналитикаУчетаНоменклатуры И УчетСебестоимости.Период = ПоследнийПриход.Период //----------------------------------------------------------------------------------------------------------------------- ГДЕ УчетСебестоимости.КоличествоПриход > 0 И УчетСебестоимости.СтоимостьРеглПриход > 0 ;
Вніс зміни у версію обробки sksobol. Обробка finance.ua дозволяла завантажувати курси тільки поточної дати, курси минулих періодів потребували введення коду Тепер обробка дозволяє завантажувати курси із bank.gov.ua за період
Дійові особи: Саня: 1С-нік, відповідає за звіти нової підсистеми Толік: 1С-нік, відповідає за об'єкти нової підсистеми Оксана: представник із сторони замовника
На сцені стоять два столи. На столах стоять ноутбуки. Між столами стоїть тумбочка із кавоваркою, поряд висить дартс. За столами сидять Саня і Толік
Толік: Ну шо, я написав план проекту, відправив тобі та Оксані. Там буде один новий документ "заявка" та деякі зміни у платіжних дорученнях. Почитай, там все зрозуміло? Саня: Так, все ок Толік: Звіти все тягнуть із типових регістрів Саня: Ну якщо шо, то добавимо Толік: На перший погляд звіти може і не складні, але ж ти розумієш, вона по ним ще декілька разів буде робіти всякі-різні уточнення. Я думаю краще їх робити звичайними, а не СКД Саня: Толік, та нормально все буде Толік: Ну дивись
Входить Оксана
Оксана (дає Толіку аркуш): Так, я почитала, внесла деякі уточнення Толік (бере аркуш, дивиться в нього): Угу Оксана: І ви написали що це будуть різні звіти. Мені потрібно щоб це був один звіт Толік (дивиться на Оксану): В якому сенсі? Оксана: Ну тобто, так, це різні звіти, але вони повинні формуватись один під одним, в одному вікні. Я згортаю по группах та звіряю у екселі цифри по колонках Толік: (дивиться на Саню) Саня: Я зрозумів. Так, зроблю Толік: І ми з вами говорили по правах Оксана: Так, напишу
Оксана уходить
Толік (активно довбить клавіатуру) Саня (іде до тумбочки з кавоваркою, робить собі каву, повертається з кавою до свого ноутбука, п'є каву, хитається на стільці та клікає мишкою) Саня: Ну я розібрався. Можна зробити на СКД Толік (спочатку перестає довбити клавіатуру, потім дивиться на Саню): Га? Саня: Кажу, Оксана хоче щоб різні звіти були в одному табличному документі. У них дуже схожа структура, можна зробити на СКД Толік: Ну дивись
Толік (ще деякий час довбить клавіатуру) Толік: Зробив. Можеш робити звіти Толік (іде до тумбочки з кавоваркою, робить собі каву) Саня: Ну все, готово Саня: Відправив Оксані
Входить Оксана
Оксана: Подивилася звіт. Є деякі зауваження. Додайте ще колонку "ПДВ" та "Сума без ПДВ" Саня: Ок
Оксана уходить
Саня: У тебе там шо, по декілька записів у регістр платіжка може робити? Толік: Так. Декілька заявок можуть закриватись однією платіжкою. Або навпаки: декілька платіжок на одну заявку Саня: Просто є платіжки з ПДВ, а є без ПДВ. Ну добре, зараз зроблю Толік (допиває каву, іде до мішені дартс і деякий час грає у дартс) Толік: Шо там? Саня: Запитом його не виходить витягнути. По-нормальному то треба його добавляти у регістр Толік: Добав (продовжує грає у дартс) Саня: Зробив, відправив
Входить Оксана
Оксана: Так, з ПДВ все ок, а по валютним є розбіжності. У звіті вони по курсу нац.банку, а треба по комерційному курсу. Ось у нас окрема табличка з комерційними курсами Толік: Курс брати на яку дату? Оксана: На дату замовлення Оксана: Хоча... Оксана: Добре що ви спитали. Можемо передбачити у замовленні можливість внести курс "вручну"? Толік: Саня? Саня: Нууу, так Оксана: Ок
Оксана уходить. Толік і Саня працюють
Саня: Все, зробив Толік: Можна я гляну? Толік: Хай Бог милує! Саня: Угу, звіт вийшов трохи складніший ніж ми розраховували Толік: Якщо у Оксани ще щось знайдеться... Саня: Так, давай не будемо
Толік: Оксана написала по звіту що все "ок" Саня: Супер Толік: А також Оксана права прислала. Зараз зроблю Толік: Опа! А під РЛС звіт не працює Саня: Шо там? На регістр дав права? Толік: Звичайно Саня: На платіжки? Дай я подивлюсь Толік (іде робити каву) Саня: Не розумію, звіт видає "Порушення прав доступу", а у консолі запитів усе працює Толік: Згадав. На усі документи реєстратори є права? Саня: Ну стоїть же "дозволені". Та і тут у регістрі тільки платіжки, інших документів взагалі нема Толік: Дай на читання для усіх документів, які теоретично можуть у регістр писати Саня: О, працює. Нарешті
yaroslav_29 @ Вчера, 22:38
, Попытка ... Исключение - це неявна транзакція Помилка "У поточній транзакції вже відбувалися помилки" відбувається коли розпочата транзакція потрапила у Попытка ... Исключение (тобто ще раз розпочалась транзакція) і там відбулося виключення. І це викликає відкат усієї транзакції В результаті видається неінформативне повідомлення про помилку, з якого не можливо зрозуміти що стало причиною
Що робити. Для того щоб знайти справжнє місце помилки, у конфігураторі треба ввімкнути "Зупинка при помилці". Так можна знайти де вона вперше виникає і з'ясувати причину помилки (у мене такі помилки найчастіше пов'язані з правами доступу користувача)
kserg2012 @ Вчера, 11:03
, Можно дать пользователю право "Интерактивное удаление" на соответствующие документы. Пользователь сможет вместо пометки удаления удалять документы непосредственно (Shift + Del). Сам никогда так не делал, но видел что коллеги делают
Как это можно сделать через планировщик. Добавить в конфигурацию типовую обработку с диска ИТС "Удаление помеченных объектов". Обработку надо будет доработать:
перенести с формы в модуль процедуры и функции, кроме обработчиков событий и тех которые работают элементами формы
убрать из этих процедур модуля диалоговые функции типа "Предупреждение", "Состояние" и обращения к элементам формы
добавить экспортную процедуру (например Выполнение()) в которой будут последовательно вызываться процедуры поиска помеченных на удаление, контроль, удаление
Если у вас клиент-серверный вариант, можно сделать через регламентированные задания. Процедуру обработки Выполнение() надо будет вызывать из привилегированного модуля. На файловом варианте рег. задание отрабатывает только если есть активный пользовательский сеанс и справами этого пользователя. Т.е. на файловом варианте регламентированные задания лучше не использовать
Через планировщик задач Windows это делается так. Добавляете запуск 1С с параметрами:
где <ключ-параметр> - произвольное слово В процедуре ПриНачалеРаботыСистемы() анализируете переменную ПараметрЗапуска и если там есть <ключ-параметр>, вызываете процедуру в которой происходит вызов процедуры Выполнение() обработки "Удаление помеченных объектов"
Если НЕ ПустаяСтрока(ПараметрЗапуска) И Найти(ПараметрЗапуска, "DelMarkObj") > 0 Тогда ПолныеПрава.ВыполнитьУдалениеПомеченных(); ЗавершитьРаботуСистемы(Ложь); Возврат; КонецЕсли;
Минус использования планировщика задач Windows - нужно в явном виде прописывать логин/пароль. Лучше для этого в 1С создать пользователя с правами только на подключение + необходимый минимум для запуска обработки удаления
Добрий день. Ми тут у Хестроні випали з життя на півтора роки, тільки починаємо працювати, хто може підлитися цим звітом для УТП, т.к. вкрали всі сервери з усіма напрацюваннями.
alex-l1904 @ Сегодня, 9:46
, Вважаю так: якщо ви бачите, що с самого початку запит виходить занадто складний, а у майбутньому може бути змінена бізнес логіка і це повністю поламає запит, то краще одразу розбивайте заповнення даних на окремі запити/функції Вносити зміни в окремі функції потребує меньше часу ніж переписувати складні запити
Несколько раз получал такую задачу. Были изменены документы которым уже несколько месяцев. Когда они изменены - достаточно давно, просто поднять базу из бэкапа уже не получится. Но мы точно знаем дату, когда документы еще не были изменены (например месяц назад) Вопрос: можно ли "по-быстрому" восстановить эти документы Если у вас нормально настроена система бэкапирования, то да, можно
Что нам нужно:
Бэкап на дату когда документы еще не были изменены
Обработка ВыгрузкаЗагрузкаДанныхXML
Восстановление документов:
На всякий случай делаем резервную копию "рабочей" базы
Создаем новую базу и восстанавливаем в нее старый бэкап. Из нее будем забирать "не измененные" документы
Если конфигурации п.1 и п.2 отличаются, выгружаем из "рабочей" базы конфигурацию и загружаем в копию п.2
Запускаем в копии базы п.2 обработку ВыгрузкаЗагрузкаДанныхXML, настраиваем отбор на выгрузку нужных документов. При этом должна быть включена галочка "Выгружать с документом все его движения"
Запускаем ВыгрузкаЗагрузкаДанныхXML в рабочей базе и загружаем документы
Отчет создан для конфигурации "Управление торговым предприятием для Украины"
Пользователь самостоятельно создает структуру отчета и список показателей. Для каждого показателя задаются правила заполнения При первом запуске отчета уже будет какая-то заполненная структура и настроены правила для показателей - это просто как пример заполнения
Показатель рассчитывается на основании проводок бух.учета. Для настройки правил отбора проводки можно использовать:
Дт/Кт счета (несколько счетов в виде формулы)
Список корр.счетов
Аналитику проводки
В качестве правил отбора по аналитике проводки можно использовать:
Подразделения организации
Статьи затрат
Контрагенты
Вид взаиморасчетов
Детальное описание как заполнить правила расчета показателя находиться в справке отчета Отчет использует хранилище настроек. Перед использованием отчета необходимо добавить в конфигурацию хранилище настроек "НастройкиОтчетов" и регистр "ХранилищеНастроекОтчетов"
Про керовані форми не знаю, на звичайних виникає у випадках коли користувач працює по RDP з дому і з офісу. У моніторів різна розподільна здатність. Допомогло зміна налаштувань на вкладці "Екран" RDP Також є користувачі у яких використовується окремий стиль (збільшений шрифт у полях форми). У них злітає прив'язка окремих панелей. Налаштування точок прив'язки стоїть правильно, допомагає таке:
Щось змінити з проблемною панеллю, наприклад колір. Оновити базу
Насколько я понял вы хотите сделать все просто, одной строкой. Как сделать одной строкой не знаю, можно написать процедуру. Обходим в цикле все элементы формы и в зависимости от типа элемента меняем заголовок Как-то так:
Для каждого ЭлементФормы из ЭтаФорма.ЭлементыФормы Цикл
ТипЭлемента = ТипЗнч(ЭлементФормы);
Если (ТипЭлемента=Тип("Надпись") ИЛИ ТипЭлемента=Тип("Кнопка")) Тогда
Якщо обрубати по даті то можливі втрати рідковикористовуваних обєктів
У "Конвертації даних" можна створити декілька наборів правил. Наприклад для об'єктів які використовуються часто, для об'єктів які використовуються з середньою частотою і для для об'єктів які використовуються рідко. І вивантажувати кожну групу окремо на різні дати
При цьому створюється проблема переноса залишків. Залишки ми можемо переносити тільки на найбільшу дату. А об'єкти, що йдуть до цієї дати, переносити без рухів. І добавляти у модуль документа заглушку, яка блокує рухи документа до певної дати. Щоб користувачі випадково не перепровели старий документ Але те що ви пропонуєте, також зіткнеться із цією проблемою
Если у вас какие-то группы выполняют определенную функцию (по ним устанавливаются лимиты остатков), а другие группы не выполняют эту функцию, то мне кажется логично добавить реквизит Булево для группы. И дальше смотрим, если этот признак установлен - то именно эти группы нам и нужны. То что такой признак не был добавлен - породило бардак с группами и вы сейчас по сути боретесь с последствиями
Реализация как найти все группы нижнего уровня
Функция ПолучитьВсеГруппыНижнегоУровня()
Результат = новый Массив;
Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа = ИСТИНА";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ЭтоГруппаНижнегоУровня(Выборка.Ссылка) Тогда
Результат.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ЭтоГруппаНижнегоУровня(Группа)
Запрос = новый Запрос;
Запрос.УстановитьПараметр("Группа", Группа);
Запрос.Текст = "ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК КоличествоГрупп |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ЭтоГруппа = ИСТИНА | И Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)";
Самий поширений випадок - оптимізації потребує конкретний об'єкт. Запит чи фрагмент програмного коду
Якщо "тормозить" просто все, дивимось монітором ресурсів в чому проблема, який ресурс (процесор, пам'ять, диск чи мережа) зайнятий близько до 100%. В моєму досвіді найпоширеніше це була мережа
Якщо ж ви все ж таки прийняли рішення архівувати базу, то зробити це можна так:
Створюємо нову базу с такою самою конфігурацією
Використовуємо "Конвертації даних". Налаштовуємо правила перенесення об'єктів
За допомогою "Конвертації даних" переносимо в нову базу документи та регістри відомостей після обраної дати (наприклад 01.01.2022)
При перенесені за допомогою конвертації будуть також перенесені елементи довідників, які використовуються у документах та регістрах відомостей що переносятся
"Старі" елементи довідників (включно із "старими" користувачами) перенесені не будуть
Так ми отримаємо дві бази. Одну архівну і одну "нову" в якій продовжуємо працювати
У меня в нескольких организациях есть "Премия по результатам работы за прошлый месяц". У нее базовый период - предыдущий месяц. Делать надо было срочно, надо было рассчитывать отпуска за декабрь, а когда то обновление будет - непонятно + пришлось сделать обработку. Во всех базах расчетчики зп с этой премией работали неправильно, базовый период проставлялся = периоду регистрации. Обработкой исправлял базовый период в регистре И кстати после обновления 2_1_59_1 расчет среднего продолжал считаться неправильно. Точнее как: если премию платили только 1 раз, тогда расчет был верный; если каждый месяц - неверный
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!