Попытка ОтветHTTP = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;
УдалитьФайлы(ФайлВМассив1); УдалитьФайлы(ФайлВМассив2); //УдалитьФайлы(ИмяИтоговогоФайла); // інколи вилітає помилка при видаленні УдалитьФайлы(ПутьКФайлу);
Ось мій варіант вибора принтера. в довіднику "Користувачів" в мене прописані назви принтерів які потрібно використовувати для різних варіантів друку (назву принтера необовязково вказувати повністю - головне щоб всі назви принтерів в компютері були різні)
Функция ПолучитьИмяПринтераДляПечати(Вид) ИмяПринтера=""; принтеры = Новый COMОбъект ("WScript.Network"); prn = принтеры.EnumPrinterConnections(); i = 0; Если Вид="Чек" тогда ПроверочнПринтер=ПараметрыСеанса.Користувач.ПринтерЧеков; Иначе ПроверочнПринтер=ПараметрыСеанса.Користувач.ПринтерОсновной; КонецЕсли;
Пока i < prn.Count()-1 Цикл // НовыйПринтер=ТЗПринтеры.Добавить(); ВремИмяПринтера=prn.Item(i+1); i = i + 2; Если Найти(ВремИмяПринтера,ПроверочнПринтер)>0 тогда ИмяПринтера=ВремИмяПринтера; Прервать; КонецЕсли; КонецЦикла; Возврат ИмяПринтера;
1. САМЕ ГОЛОВНЕ !!! Надіюсь це все ви робите на копії ???????
Даний збій малоймовірно може виникати тільки від того що на компютері була неправильна дата. Скоріш за все або сипеться вінчестер на компютері, або під час роботи 1С компютер вимикався (пропадало світло) Не знаю чи ві вірно все виконували в базі. Пораджу що можна зробити. 1. Операции. Проведение документов. На закладці "Последовательности" . Відмітити всі і "Виконати" 2. В конфігураторі. Тестирование и исправление. Вибрати всі (крім "Упаковки таблиць") А нижче "Тестирование и исправление". І ще по кнопці "Настройки" Спочатку пробувати з настройками "Создавать Обекти". А яко не поможе, то з настройками "Очищать ссилки" і Удалать Данние" . Тоді ці проблемні документи або створяться або почиститься мусор від них.
Якщо це не допоможе тоді прийдеться застосовувати тяжку алтилерію для перегляду і редагування DBF файлів. DBF_1сViewer_2_0.ert - тільки перегляд файлів. redaktor_dbf.rar - для редагування файлів (це ті якими я користуюсь. Звичайно є і інші. в своїй конфігурації шукаєте ці проблемні файли. DH931.dbf DT931.dbf і відкриваєте цими програмами. Запись 610 - це номер рядка в вашому файлі (перша колонка Номер Записи). По ній знайдете проблемний документ дату, суму.... А далі вже вирушуйте що з цим робити.
Ще можна попробувати через конфігуратор Администрирование Вігрузить данніе. Загрузить данніе
P.S. У вас всого два проблемних документи. Просто в 1С так реалізовано що сам документ і його таблична частина зберінаються в різних файлах
Если Условие1 тогда Форма.Дата1.видимость(0); Форма.ТекстНаФорме.видимость(0); Форма.ТекстНаФорме1.видимость(1); ИначеЕсли Условие2 тогда Форма.Дата1.видимость(1); Форма.ТекстНаФорме.видимость(0); Форма.ТекстНаФорме1.видимость(1); ИначеЕсли Условие3 тогда Форма.Дата1.видимость(1); Форма.ТекстНаФорме.видимость(1); Форма.ТекстНаФорме1.видимость(0); Иначе Форма.Дата1.видимость(0); Форма.ТекстНаФорме.видимость(1); Форма.ТекстНаФорме1.видимость(0); КонецЕсли
в базі "ПАПЄРЄДНІКІ" писали іАвтор, і Ответственный два варіанта(в різних документах по різному)
Тоді виправити так частину коду
Для Каждого Документ Из Метаданные.Документы Цикл Если Не Документ.Реквизиты.Найти("Автор") = Неопределено Тогда СтрокаАвтор=" Ссылка.Автор Как Автор "; ИначеЕсли Не Документ.Реквизиты.Найти("Створив") = Неопределено Тогда СтрокаАвтор=" Ссылка.Створив Как Автор "; ИначеЕсли Не Документ.Реквизиты.Найти("Ответственный") = Неопределено Тогда СтрокаАвтор=" Ссылка.Ответственный Как Автор "; Иначе СтрокаАвтор=Кав+" Відсутный автор"+Кав+" Как Автор "; КонецЕсли; // цей пораддок можна пробувати міняти. Так як "Папереднікі" могли до одного і того самого документа прописати і Автор і Ответственного. //А реально самого автора писати в один із реквізитів
Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+ Кав+ Документ.Имя+Кав+" Как Имя, "+ СтрокаАвтор+ // " Ссылка.Створив Как Автор "+ " ИЗ Документ." + Документ.Имя; Текст = Текст + " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ "; КонецЦикла;
volodya1122 @ 27.05.22, 10:48 * ,Перемпрошую, а можливо щоб не сумувало кількість, а видало окремо дату та час і користувача. тобто: Документ, дата і час, користувач. Я розумію що це буде величезне полотно данних, але якщо можна в цьому коді поправити то буду дуже вдячна )
" Ссылка.Створив Как Автор "+ спрацює в тому виадку, якщо в кожного із документів є реквізит "Створив". Якщо у вас по інщому називається то виправити Ссылка.Створив= на Ссылка.Автор (ябо як там називається у вас в кожнім документі)
ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки ДатаКонечн=ТекущаяДата(); Кав=""""; Запрос = Новый Запрос; Текст = " "; Для Каждого Документ Из Метаданные.Документы Цикл Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+ Кав+ Документ.Имя+Кав+" Как Имя, "+ " Ссылка.Створив Как Автор "+ // ось тут поправити " ИЗ Документ." + Документ.Имя; Текст = Текст + " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ "; КонецЦикла;
vbi @ Сегодня, 15:44
, Далеко не всі події записуються в журнал реєстрації (наприклад "Справочники" - якщо не створювати нові елементи/редагувати існуючі, - а тільки використовувати їх в документах, то в в журналі реєстрації небуде згадки про те, що цей довідник використовували. Інший приклад. Документи рухають регістри. Але по них також немає запису в журналі реєстрації)
Diana1c @ Сегодня, 11:40
, Які параметри? Звичайний звіт (на формі звіту кнопка Сформировать. В обработчику кнопки Процедура: Процедура Сформировать()...... КонецПроцедури Ось туди вставити код
Ось нашвидкоруч накинув код, щоб визначити які документи які зараз використовуються. Але повторюю, потрібно добре подумати чи видалення документів, які не використовуються не вплинуть на правильність обліку по інших документах
ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки ДатаКонечн=ТекущаяДата(); Кав=""""; Запрос = Новый Запрос; Текст = " "; Для Каждого Документ Из Метаданные.Документы Цикл Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+ Кав+ Документ.Имя+Кав+" Как Имя, "+ " 1 Как Повторов"+ " ИЗ Документ." + Документ.Имя; Текст = Текст + " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ "; КонецЦикла;
// Пока Выборка.Следующий() Цикл // Сообщить(""+Выборка.Дата+" "+Выборка.Имя+" "+Выборка.Повторов ); // КонецЦикла;
Сообщить("Кількість документів за період з "+ДатаНач+" по "+ДатаКонечн); Для Каждого Стр Из КопияТЗ Цикл Сообщить(Стр.Имя + " " + Стр.Повторов); КонецЦикла; Для Каждого Документ Из Метаданные.Документы Цикл СтрокаПоиска = КопияТЗ.Найти(Документ.Имя, "Имя"); Если СтрокаПоиска = Неопределено Тогда Сообщить(Документ.Имя + " пусто"); КонецЕсли; КонецЦикла;
Diana1c @ Сегодня, 12:55
, 1. Енна кілкість співробітників. Думаю мається на увазі користувачів в 1С? На роздутість бази взагалі не впливає. (це 0,0000001% від обєму бази). А щоб непотрібних не показувати при вході в програму -то їх показ можна відключити в конфігураторі (Меню- Адміністрування-Користувачі. Випрати непотрібного користувача. в Зняти помітку "Показувати в списку вибору") 2. Багато обєктів в базі. Що тут мається на увазі? Багато різних видів документів, довідників, Регістрів.......? Чи багато в базі створено докумнентів, довідників.... (мається на увазі документи , які створюють користувачі в процесі роботи з програмою)? 2.1 Якщо перше, то тут практично неможливо щось викинути, так як одні обєкти зазвичай задіяні в різних місцях програми. І просто так їх не позбутись, не переписавши половину конфігурації. 2.2 Якщо друге, то тут також не все однозначно. Наприклад документ введення залишків. Його один раз використали на початку користування програмою -ввели залишки. Більше ним не користуються. Його можна видалити? Звичайно ні. Тут тільки аналізувати очима, розмовляти з працівниками., Якщо в програмі є різні підсистеми, які ніяк не повязані між собою.Тоді документи однієї підсистеми можно видалити. 3. База дуже роздулась? В цифрах це скільки (в Мегабайтах/ Гігабайтах) База файлова чи SQL? (Зменшення обєму допомагає в Конфігураторі "Тестування і виправлення інформаційної базі" - АЛЕ ОБОВЯЗКОВО ПОТРІБНО ТАКІ РЕЧІ РОБИТИ НА КОПІЇ І НЕ ЗАБУВАТИ ПЕРЕД ТИМ РОБИКИ АРХІВНУ КОПІЮ БАЗА!!!!ЦЕ ДУЖЕ ВАЖЛИВО)
Для керованих непідкажу. А от для звичайних форм можете подивитись. Потрібно запустити в 1С цю конфігурацію і кожні 2 хв в файл D:\test\zxzx.txt буде добавлятись текуча дата. (Диск D повинен існувати на компютері) Ссылка на файл
Я працюю з MINI-T400, але драйвер використовується той самий що і для фіскального реєстратора. Зараз якраз була Кампанія по перепрошивках Касових апаратів і реєстраторів під нові вимоги законодавства для друку штрихкодів акцизних марок. Тому насамперед питаненя: 1. Ви перепрошивали свій реєстратор? і помилка виникла після перепрошивки? 2. Попередній драйвер видалили? 3. після цього новий драйвер зареєстрували (від імені адміністратора) (І згідно інструкціі повинен ще лежати в папці C:\olesrv)
maci @ Сегодня, 9:24
, Тоисть Вы хотите сделать независимый регистр сведений, но чтобы он вел себя как регистр сведений подчиненный регистратору? Странная хотелка... Чтобы все записи не регистра сведений не удалялись нужно снасалаОтборами получить нужнвй набор записей, которые будут перезаписыватся, потом удалить их, а в конце записать новый набор.
ЗаполнитьЗначенияСвойств(НабпрСвойств,стр); // Из выборки по табличной части документа, если нужно НабпрСвойств.Период=Дата; НабпрСвойств.Контрагент=Ссылка;
НаборЗаписей.Записать();
Ну и не забывать очищать Записи в регистреСведений при распроведении/удалении документа
У Вас что-то очень много нестандартных хотелок. Может лучше сделать как в стандартных отчетах реализовано (например Отчет По Партиях товара, или Отчет Продажи). Вверху в сформированном отчете есть кнопки "Оновить" Настроить". Суть тут такая: Сформировали отчет. Потом в каком-то документе поменяли данные, записали документ. Потом просто нажать "Оновить" и отчет перерисуется (с теми же параметрами которые пользователь выбрал для отчета). (сформированный отчет должен быть в Режиме ТолькоПросмотр(1)
// {"kodPdvList":null,"tinList":"34554355 34554357", // "name":null,"token":"03AOLTBLRIFo9xivFXYOrFqaLL6g0HKv"} Запрос = Новый HTTPЗапрос("/ws/api/public/registers/pdv_act/list",Заголовки); Запрос.УстановитьТелоИзСтроки(КодПриглашения);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); Для Каждого ЕлМассива ИЗ Данные цикл Для каждого Структур ИЗ ЕлМассива цикл Ключ = Структур.Ключ; Знч = Структур.Значение; Сообщить("Ключ= "+Ключ+" Знач "+Знч); КонецЦикла; КонецЦикла;
ZUBR @ Сегодня, 1:49
, Зрозуміліше не стало від цього пояснення. Пропробую здогадатися. І так і вас на формі обробки (чи де саме використовуєте даний код) є реквізити Имя_, Телефон, АдресаОбласть, АдресаНаселенийПункт, АдресаВулиця. В залежності від нажатої кнопки потрібно зробити три різних пошуки. 1. по реквізиту форми Имя_ 2. по реквізиту форми Телефон 3. одночасно по співпадінню зразу трьох реквізитів АдресаОбласть, АдресаНаселенийПункт, АдресаВулиця Тоді потрібно ось так прописати
Если НомерВызова=1 тогда РеквизитДокумента=Расх.Имя; РеквизитФормы=Имя_; ИначеЕсли НомерВызова=2 тогда РеквизитДокумента=Расх.Телефон; РеквизитФормы=Телефон_; ИначеЕсли НомерВызова=3 тогда РеквизитДокумента=Расх.АдресОбл+Расх.НасПункт+Расх.АдресВул; РеквизитФормы=АдресаОбласть+АдресаНаселенийПункт+АдресаВулиця; КонецЕсли;
Если ((Найти(РеквизитДокумента,РеквизитФормы)>0)и(Расх.ПометкаУдаления()=0)) Тогда // замінити замість Вашої умови // РеквизитДокумента, РеквизитФормы придумані довільні // відповідно у Вашому докумеенті РасходнаяНакладная повинні бути ці реквізити (або вони називаються по іншому) Телефон, Имя, АдресОбл, НасПункт , АдресВул // або можливо це реквізити контрагента який є на формі документа. Поді відповідно буде Расх.Контрагент.АдресОбл , .......... // можливо для рексвізитів в даному коді потрібно буде застосувати СокрЛП
Или, хотя бы, как сделать так, чтобы таблица значений и другие созданные объекты в одной процедуре, были видны в других процедурах?
Це робиться досить просто. в самому верху модуля (до всіх процедур) робиться обявлення всіх реквізитів які повинні бути доступні у всіх процедурах і функціях даного модуля:
Я так зрозумів, що ця процедура визивається різними кнопками. Тому щоби знати якою кнопкою визвана процедура на кожній кнопці визиваємо приблизно так:
ПоискПТФ(1) -на першій кнопці ПоискПТФ(2) - на другій кнопці ......
В самому модулі навзву процедури пишемо так;
ПоискПТФ(НомерВызова)
І в тексті процедури, перед Вашою умовою пишем
Если НомерВызова=1 тогда РеквизитСправочника=Расх.Имя; РеквизитФормы=Имя_; ИначеЕсли НомерВызова=2 тогда РеквизитСправочника=Расх.Телефон; РеквизитФормы=Телефон_; Иначе.............. .......... КонецЕсли;
Если ((Найти(РеквизитСправочника,РеквизитФорми)>0)и(Расх.ПометкаУдаления()=0)) Тогда // замінити замість Вашої умови
Sharzem @ Сегодня, 9:59
, Спеціально для мене заморочились? Звичайно це набагато краще. (оптимізовувати код можна до бескінечності). але і буковок набагато більше писати потрібно було,
Вставлю и свои 5 копеек. Я так проверяю в табличной части документа на дубли контрагентов. Легко можно переделать на проверку на дубли в таблице значений или списке значений. Тут отработает быстрее чем цикл в цикле
сз=СоздатьОбъект("СписокЗначений"); ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл зн=Контрагент.Код; поз=сз.НайтиЗначение(зн); Если поз<>0 Тогда СтараСтрічка=""; тмп=сз.ПолучитьЗначение(поз,СтараСтрічка); сообщить("Однаковий Контрагент: "+Контрагент+" в рядках: "+СтараСтрічка+" і "+НомерСтроки,"!"); КонецЕсли; сз.ДобавитьЗначение(зн,""+НомерСтроки); КонецЦикла;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!