Як вимкнути заміну ідентифікаторів робочого місця у 1С?
1С Платформа 8.3.16, конфігурація Авібус. Віртуальний сервер терміналів, тонкі клієнти з windows 7. При авторизації користувача в 1С, видається ідентифікатор робочого місця за директорією %LocalAppData%\1C\1cv8 у файлик 1cv8u.pfl, а також у програмі 1С:
За ідеєю на одній і тій же машині ідентифікатор повинен зберігатися, але при авторизації іншого користувача він змінюється за директорією %LocalAppData%\1C\1cv8 у файлі 1cv8u.pfl і якщо після другого користувача зайде колишній користувач ідентифікатор так само зміниться.
У групових політиках домену знайшов скрипт сценарій, при вході в систему, він явно якось пов'язаний з цим, оскільки назва (Правка clientid для правильного функціонування робочих місць 1С), вміст PowerShell Script:
$path83 = "$env:LOCALAPPDATA\1C\1cv8\1cv8u.pfl" $path82 = "$env:LOCALAPPDATA\1C\1cv82\1cv8u.pfl" function replaceid ($path)< $clientname = echo $env:client (($clientname.StartsWith("wtw")) -and ($clientname.Length) -eq 15 -and (Test-Path $path)) < $macaddr = $clientname -replace 'wtw' $file = [System. IO.File]::ReadAllText($path) $file -replace "[a-f\d]\-[a-f\d]\-[a-f\d]\-[a-f\d]\-[a-f\d]\>" , "11111111-1111-1111-1111-$macaddr> || Out-File $path -encoding Unicode > > replaceid -path $path82 replaceid -path $path83 # SIG # Begin signature block # MIIPkgYJKoZIhvcNAQcCoIIPgzCCD38CAQExCzAJBgUrDgMCGgUAMGkGCisGAQ gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUO5Dgl3avxGqpw6Bd zdigggqpMIIEmTCCA4GgAwIBAgIPFojwOSVeY45pFDkH5jMLMA0GCSqGSIb3DQEB # BQUAMIGVMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhb TGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNV # BAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEdMBsGA1UEAxMU aXJzdC1PYmplY3QwHhcNMTUxMjMxMDAwMDAwWhcNMTkwNzA5MTg0MDM2WjCBhDEL # MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3Rl BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKjAoBgNVBAMT # IUNPTU9ETyBTSEEtMSBUaW1lIFN0YW1waW5nIFNpZ25lcjCCASIwDQYJKoZ AQEBBQADggEPADCCAQoCggEBAOnpPd/XNwjJHjiyUlNCbSLxscQGBGue/YJ0UEN9 # xqC7H075AnEmse9D2IOMSPznD5d6muuc3qajDjscRBh1jnilF2n+SRik4 KlR6UPDV9syR55l51955lNeWM/4Og74iv2MWLKPdKBuvPavql9LxvwQQ5z1IRf0f # aGXBf1mZacAiMQxibqdcZQEhsGPEIhgn7ub80gA9Ry6 zbfbpVd2Qm8AaIKZ0uPB3vCLlFdM7AiQIiHOIiuYDELmQpOUmJPv/QbZP7xbm1Q8 # ILHuatZHesWrgOkwmt7xpD9VTQoJNIp1KdJprZcPDC/A4 BgNVHSMEGDAWgBTa7WR0FJwUPKvdmam9WyhNizzJ2DAdBgNVHQ4EFgQUjmstM2v0 # M6eTsxOapeAK9xI1aogwDgYDVR0PAQH/BAQDAgbAMAwGA1UdEwEB/ VR0lAQH/BAwwCgYIKwYBBQUHAwgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2Ny # bC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2JqZWBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20w # DQYJKoZIhvcNAQEFBQADggEBALozJEBAjHzbWJ+zYJiy9cAx/usfblD2CuDk5oGt # Joei3/2z2vRz8wD7KRuJGxU+22tSkyvErDmB1zxnV5o5NuAoCJrjOU+biQl/e8Vh # f1mJMiUKaq4aPvCiJ6i2w7iH9xYESEE9XNjsn00gMQTZZaHtzWkHUxY93TYCCojr # QOUGMAu4Fkvc77xVCf/GPhIudrPczkLv+XZX4bcKBUCYWJpdcRaTcYxlgepv84n3 # +3OttOe/2Y5vqgtPJfO44dXddZhogfiqwNGAwsTEOYnB9smebNd0+dmX+E/CmgrN # Xo/4GengpZ/E8JIh5i15Jcki+cPwOoRXrToW9GOUEB1d0MYwggYIMIIE8KADAgEC # AhNrAAAAHoTsds6po2l2AAAAAAAeMA0GCSqGSIb3DQEBBQUAMFQxEjAQBgoJkiaJ # k/IsZAEZFgJydTEZMBcGCgmSJomT8ixkARkWCWF2b2t6YWw2MzEjMCEGA1UEAxMa # YXZva3phbDYzLVNNUi1EQy0wMDAwMDItQ0EwHhcNMTYwOTA3MTYyNDM1WhcNMTcw # OTA3MTYyNDM1WjB9MRIwEAYKCZImiZPyLGQBGRYCcnUxGTAXBgoJkiaJk/IsZAEZ # Fglhdm9remFsNjMxETAPBgNVBAsMCFVzZXJfQ0FWMTkwNwYDVQQDDDDQodC10YDQ # tdC00LDQstC40L0g0JrQuNGA0LjQu9C7INCe0LvQtdCz0L7QstC40YcwggEiMA0G # CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYK5Z4vacp7pSAWe8gMnWjFRr0vzNO # hOUy89NzdiqGqsDAMgMTu0z1gLg/4khrtZnMD+HZbr2Bi3UyNV2V2mEG5Y4sNnaV # iPAWJzDEgSpVZbn2xM8r8+g1ToJivCQ2iOuhlZjRZFwGKhH1ArBNkJlooywUYrEU # OhY86z7sjxcUJNH1z8D1K7k83Qi75+8TAqHrENseuZB55MVlF8Z6Ol/yL4d1UL5y # QJeDou9c35e3CSBbQbyWyAhuUh4YHIBU0FzVbPPbQnAI9nuiK3UXEeX/Onc1erqG # EnsStxEEBZCD5vGy/SLfz1Ed7vTEawtQu/tKXML6k56l1XaPPO9hxeBnAgMBAAGj # ggKoMIICpDA7BgkrBgEEAYI3FQcELjAsBiQrBgEEAYI3FQiHmuh1gbvvPIGhiw3i # lQu/7A2Be4WsqBXLq2kCAWQCAQQwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDgYDVR0P # AQH/BAQDAgeAMBsGCSsGAQQBgjcVCgQOMAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYE # FM1YJWtHSPuBsCvdqjrwaTErlmWvMB8GA1UdIwQYMBaAFGRz8rK1vGBcPC0HJaLL # OV+dEjaNMIHfBgNVHR8EgdcwgdQwgdGggc6ggcuGgchsZGFwOi8vL0NOPWF2b2t6 # YWw2My1TTVItREMtMDAwMDAyLUNBLENOPXNtci1kYy0wMDAwMDIsQ049Q0RQLENO # PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy # YXRpb24sREM9YXZva3phbDYzLERDPXJ1P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxp # c3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBzQYIKwYB # BQUHAQEEgcAwgb0wgboGCCsGAQUFBzAChoGtbGRhcDovLy9DTj1hdm9remFsNjMt #U01SLURDLTAwMDAwMi1DQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj # ZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1hd cnU/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25B # dXRob3JpdHkwMQYDVR0RBCowKKAmBgorBgEEAYI3FAIDoBk dm9remFsNjMucnUwDQYJKoZIhvcNAQEFBQADggEBAKf+SXq0YzfzLCHqnBnvaZIa # 99WgpgM9RIckiv/YzP3Tb1LRvDBtVmeX/Z26toUf0iiNEPO5iWvdn 5+820jr7zVWBfLuAI5IG5dMFvSiDKRtnzl4kJUFs8f6yvmidcKLuoy3pHR6fF8pj # UTMJWNV8xi5jg7EsPfWfjJZzX92heMvRvUhY1vFfu8FE arVBJIsduOitxIoCPDKOIXQrpzdxJf4ijQdwzSnlYzX3RX878QfJoqGocowt9B8r # viKXNC0rpikjq7bWzpTnqp06sAub6q08cRTayELtbdxSLburfmy8I ggRTMIIETwIBATBrMFQxEjAQBgoJkiaJk/IsZAEZFgJydTEZMBcGCgmSJomT8ixk # ARkWCWF2b2t6YWw2MzEjMCEGA1UEAxMaYXZva3phbDYzLVNNUi1EQy0wMDA Q0ECE2sAAAAehOx2zqmjaXYAAAAAAB4wCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcC # AQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAY BAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFO6z5c/d7gcm # lFTIHXPhUPQv6PcnMA0GCSqGSIb3DQEBAQUABIIBADzc1DIrSgUaMcRcHk MmSUkgcbmTsPqlXBdm74/mbwgag8QfQ9sZhOvT3IGxEf6LxhDl3SsLEjtUMyxFWN # 4GzNuGaeqHPZXvz+JNXEPAnXFsF385bh+L8d5/jzLD # JoX3yMkjTjnrSw38h0tBhjU0Fv1yZbUM43AkjyP7HzZujOEPdU6Bj0srmvPHaFtJ # gL9LfCI6Uqmy8knye7bjQEaUgsiB7eZAgD/OL7EMUKK+N NtxeiKp8hthDKzy+BpBT2cceyKRHhut3eFK8lkQORByzdxImXt1z4aAP9N144Weh # ggJDMIICPwYJKoZIhvcNAQkGMYICMDCCAiwCAQAwgakwgZUxTBA MQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoT # FVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cdy1 dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdAIPFojwOSVe # Y45pFDkH5jMLMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMMBwGCSqGSIb3DQEJBTEPFw0xNjA5MDcxNzQ2MzhaMCMGCSqGSIb3DQEJBDEWBBQj # GZbElmKoKgRRERouFIoY7nGA7jANBgkqhkiG9w0BAQEFAASCAQCCuzvPosE9cpp LPHI2BFg3K+uNwawvcU2u4lYBN98GH2jWaEqVWr5xvaFDYVodpvsQnEW5wDWVzh7 # yPvjzbRtqc3l7vgG0zfzUdZ033PdlJ9jyVCRHdp # Tpxs1y1UV4xWuPc7/OwUeE9oh+Iu3u/+wWtCR0L4Kup9JA0WZp/6F43FrdqYo9dV # i8S6+0n/qvnBYv2rN/7mAncNqg4G6Sz7iOVrf15TmD1js8wrm2WKdRpBhzKar/pi # 49ZjjTq40kdBX8VJjLanAEdvqMKORe1eQPbAMXLK7 # ImYhCz+/ # SIG # End signature block
Існувало кілька баз однієї конфігурації у форматі РИБ, було прийнято рішення об'єднати їх і після об'єднання з'явилася дана проблема з робочими місцями, і для порівняння зайшов на одну із старих баз, там ідентифікатори починаються з префіксу wtw, далі великі літери та цифри, зовсім відрізняється від того, що видається для нинішньої бази даних:
Що можна зробити, щоб ідентифікатори користувача не змінювалися?
Як видалити дані організації в базі 1С?
Сьогодні будь-який бухгалтер, який працює на підприємстві або на аутсорсі, має можливість автоматизованого ведення обліку відразу кількох організацій. Це стало можливим завдяки широкому використанню програмних продуктів фірми 1С. Склад програм, яких досить різноманітний та охоплює більшу частину галузей бізнесу. Звучить надихаючі, але як у всього, так і у програмного забезпечення 1С є ахіллесова п'ята, яка полягає у функціоналі видалення даних та поділу однієї інформації бази з організацій на кілька. Досвідчені користувачі або адміністратори та програмісти 1С закидають мене камінням. Проте будемо чесні й поглянемо правді у вічі.Повертаючись до початку публікації, завів мова про ведення бухгалтерами двох або декількох організацій одночасно, представимо банкрутство однієї компанії зі списку фірм, що супроводжуються бухгалтером. Чи зручно в 1С видалити дані організації користувачеві з конфігурації, наприклад, «Бухгалтерія підприємства 3.0»? Ні, і на мій скромний погляд, колеги, що зіткнулися з цим питанням, не дадуть збрехати.
Розглянемо ще одну неприємну ситуацію, коли необхідно видалити якийсь окремий документ або, можливо, певний елемент довідника і зумовлений (стандартний) функціонал видалення об'єктів не справляється з цим завданням тому, що багато посилань на цей об'єкт є, але всі ці пов'язані посилання не потрібні. Зрозуміло, що видалення не здійснюється через посилаються об'єктів і це природно можна виправити. А якщо таких об'єктів жоден, ні два і при цьому користувач не впевнений до якої організації належить документ.
Ось тоді починаються танці, які забирають дорогоцінний робочий час, якого й без того завжди бракує. Перед тим, як перейдемо до основної частини публікації, хочеться внести ясність у те, що я не стверджую повної марності стандартної обробки видалення об'єктів, а констатую факт непрактичності.
Універсальне видалення даних з 1С або вирішення проблем із видаленням
Як бачимо, проблема існує і завдає ряд неприємностей кінцевим користувачам програм 1С. Однак не впадаємо у відчай, адже Ви вже читаєте цю статтю, а це означає, що рішення знайдено і називається «Універсальне видалення даних з 1C». Не доведеться більше "ламати" голову питанням, як видалити дані в 1С 8.3.Що це таке та з чим його їдять? Це обробка, яка призначається для видалення даних із бази з функцією наочного відображення дерева посилання. Після того, як приходить невелике розуміння того, з чим сьогодні матимемо справу, давайте визначимося з функціональними можливостями обробки. А також розглянемо список підтримуваних конфігурацій 1С. Після цього приступимо до практичної частини, де на прикладах розберемо роботу обробки.
Що вміє обробка з видалення даних
- Видалення об'єктів. Основна функція обробки призначена видалення об'єкта 1С з інформаційної бази. Дозволяє вибирати конкретні «Метадані» та «Вигляд метаданих». Доступний вибір способу видалення (повне видалення);
- Видалення об'єктів, що не використовуються. Спосіб видалення об'єктів, які не використовуються у конфігурації. Зі списку вибраних метаданих обробка надає список значень даних, що не використовуються;
- Монопольний режим. Здійснюється можливість організації монопольного способу видалення, який прискорює видалення великої кількості даних;
- Дерево посилань. Перед тим як зробити видалення даних обробка відобразить повний список залежних посилань в регістрах відомостей, де можна перевіряти правильність вибраних на видалення даних;
- Максимальна глибина пошуку. Налаштування, що дозволяє знайти повну посилальну залежність об'єкта, що видаляється з об'єктами бази.
Підтримувані конфігурації:
Рішення є універсальним і працюватиме в будь-якій конфігурації як типовий, так і не типовий з доопрацюваннями і без них на платформі 8.2 і 8.3.У процесі розробки робота була успішно протестована в наступних типових конфігураціях: 1С: Бухгалтерія підприємства 3.0, 1С: Зарплата та управління персоналом 3.0, 1С: Управління торгівлею 11, 1С: Управління торгівлею 10.3, 1С: Управління нашою фірмою, ред. виробничим підприємством, редакція 1.3.
Тепер давайте плавно відпливемо від берега теорії та причалимо до практичних прикладів, на яких розберемо різного роду використання даної обробки.
Універсальне видалення практично
На початку хотілося б розібрати найпримітивніші ситуації, при яких довелося б використовувати обробку «Універсальне видалення даних з 1С». Насамперед необхідно додати обробку в конфігурацію. Це можна зробити двома способами, першим і найпростішим, просто. або перетягнути обробку з каталогу (комп'ютера) в конфігурацію.Адміністрація»-«Друковані форми, звіти та обробки»-«Додаткові звіти та обробки», натиснути кнопку «Додати з файлу» і додати цю обробку. Початкова сторінка, вона ж «Налаштування» виглядає так.
На цій сторінці вибирається один з режимів роботи, після чого здійснюється перехід до етапу вибору даних для видалення.На закладці "Що і як потрібно видалити?" вибираємо метадані, наприклад, «Документи» і слідом зазначимо вид метаданих «Відомість до банку». Далі по необхідності можемо вказати чек-бокс «Видаляти в монопольному режимі», але краще це робити при великій кількості об'єктів, що видаляються. Тому в цій ситуації активувати прапорець не будемо.
Також потрібно не забувати встановити глибину пошуку, щоб повністю видалити документ та всі пов'язані з ним посилання (якщо цей реквізит не було встановлено, тоді глибина пошуку за умовчанням дорівнюватиме трьом). Після заповнення всіх реквізитів перейдемо до заповнення табличної частини, де за допомогою кнопки «Додати» можна додати один конкретний об'єкт. Якщо необхідно додати одразу всі об'єкти вибраного виду метаданих, тоді можна скористатися кнопкою «Заповнити» і таблична частина буде автоматично заповнена об'єктами, вибраного виду метаданих. У цьому випадку додамо лише один об'єкт і натиснемо «Далі».
На закладці «Видалення» з'явиться таблична частина, в якій виводиться інформація у вигляді дерева з усіма пов'язаними з об'єктом посиланнями. У табличній частині відображається:
- «Подання» - Подання об'єкта, що видаляється;
- «Посилання»- пов'язане посилання на об'єкт;
- «Повне ім'я» - відображається повне найменування об'єкта, що видаляється;
- «Кількість підлеглих» - відображається кількість підлеглих об'єктів метаданих, що видаляються.
Перед видаленням, рекомендую «по діагоналі» пробігтися по даній табличній частині і перевірити об'єкти, що видаляються, після чого натиснути кнопку «Видалити». Обробка здійснить видалення інформації з бази даних.
Ось так виглядає примітивний варіант використання цієї обробки.Далі перейдемо до складнішої ситуації, яка була згадана на початку публікації. Постановка завдання звучить так:
Одна організація зі списку наших компаній збанкрутувала/закрилася і тепер потрібно видалити з бази всі пов'язані з нею об'єкти.
Використовуючи обробку «Універсальне видалення даних з 1С», подібне завдання стає дрібницею. Зараз у цьому наочно переконаємось, чи запускаємо обробку. На закладці «Налаштування» вибираємо прапорець «Видалення об'єктів» та натискаємо кнопку далі. У реквізиті "Метадані" вкажемо об'єкт метаданих "Довідники", а у вигляді метаданих довідник "Організації". При подібно до обраних реквізитах будуть доступні для вказівки в табличній частині всі наявні організації в базі. За допомогою кнопки «Додати» вкажемо організацію, що видаляється, як приклад, це Конфетпром ТОВ. У цьому випадку незайвим буде активувати видалення в монопольному режимі. Оскільки об'єктів метаданих організації буде пристойна кількість. Також вкажемо глибину пошуку, щоб обробка могла максимально захопити та відобразити на видалення всі об'єкти цієї організації.
Результатом роботи обробки буде виведене дерево посилань, яке необхідно видалити, щоб повністю очистити базу інформації з цієї організації. Видаляємо ці дані і цьому видалення організації вважатимуться завершеним.
Ну і на десерт залишили солодке, ситуацію коли постає необхідність поділу єдиної бази, в якій вівся облік по двох організаціях на дві зовсім окремі інформаційні бази. Так, не типовий приклад, але має місце бути. І на жаль, стандартний механізм видалення об'єктів у конфігураціях 1С ніколи не зможе впоратися з поставленим завданням.Розглянемо як це можна провернути, використовуючи обробку універсального видалення. Перейдемо в конфігуратор центральної бази та вивантажимо базу в *.dt-файл. Слідом створимо нову чисту базу, яку назвемо, наприклад, «Бухгалтерія 2».
Після створення нової бази відкриваємо конфігуратор і завантажуємо раніше вивантажений *.dt-файл. Таким чином виходить дві бази з однаковими даними. У порядку черги запускаємо першу (центральну базу) і за допомогою обробки універсального видалення відчищаємо інформацію від другої організації способом, описаним вище. Аналогічні маніпуляції виробляємо з новою базою (Бухгалтерія 2), у яку вже було завантажено основний *dt-файл, крім видалення інформації про першої організації.
В результаті отримуємо дві окремі бази, в яких тепер вестиметься окремий облік. Тобто, в центральній базі вестиметься облік з Конфетпром ТОВ, а в базі (Бухгалтерія 2) облік з організації (Торговий дім "Комплексний" ТОВ). Здавалося б, проста у використанні обробка, але так багато застосувань, які спрощують життя. На цій ноті хотілося б закінчити, удачі та дякую за увагу.
Ознайомтеся з обробкою, яка допоможе видалити довідники та документи, які не видаляються стандартними механізмами платформи 1С
Розробник компанії Софтоніт