Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: База 1с 77 SQL не работает, но нужно выгрузить и сделать файловый вариант

v7: База 1с 77 SQL не работает, но нужно выгрузить и сделать файловый вариант
Я
   mihalich979
 
07.12.20 - 10:17
при выгрузке данных в конфигураторе:

вот такая ошибка:
SQL State: 42000
Native: 605
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Attempt to fetch logical page (1:654719) in databaze 'zakaz' belongs to object 'SC3065', not to object 'SC907'.


при запуске в обычном режиме:
ошибка такая:

crosoft Visual C++ Runtime Library

Runtime Error!
Program:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's suport for more information.


Помогите кто может.
   ДенисЧ
 
1 - 07.12.20 - 10:19
Бекап. Его далеко в сейф.
Копия. На копии DBCC CHECKDB
   Злопчинский
 
2 - 07.12.20 - 10:19
1. сделать бэкап скульной базы скульными методами
2. убедиться что бэкап рабочий
3. и можно попробовать добавить константу и тут же ее удалить. сохранить. что скажет пофигуратор?
   trdm
 
3 - 07.12.20 - 10:53
Побилась базка. Акуратно попытаться восстановить.
Спец тут есть.
   Garykom
 
4 - 07.12.20 - 10:55
Хороший повод выкинуть 77 и перейти на 8
   Mikeware
 
5 - 07.12.20 - 10:57
(4) сдохнет база снеговика - это будет повод к интегралу?
   mihalich979
 
6 - 07.12.20 - 11:40
DBCC CHECKDB

выдает следуюущее:
Server: Msg 8928, Level 16, State 6, Line 1
Object ID 0, index ID 0: Page (1:509402) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:547247) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:584767) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:654716) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:661577) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:751993) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:874537) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:906387) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:994774) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:999116) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1041428) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1085727) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1175810) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1205074) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1248525) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1286258) could not be processed. See other errors for details.
Server: Msg 8905, Level 16, State 1, Line 1
Extent (1:1292024) in database ID 13 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
DBCC results for 'zakaz'.
Server: Msg 8905, Level 16, State 1, Line 1
Extent (1:1363944) in database ID 13 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1418686) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1432071) could not be processed. See other errors for details.
Server: Msg 8905, Level 16, State 1, Line 1
Extent (1:1467736) in database ID 13 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1529957) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1544190) could not be processed. See other errors for details.
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 0, index ID 0: Page (1:1545303) could not be processed. See other errors for details.
Server: Msg 8905, Level 16, State 1, Line 1
Extent (1:1569072) in database ID 13 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
Server: Msg 8905, Level 16, State 1, Line 1
Extent (1:1689368) in database ID 13 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086734270464 owned by data record identified by RID = (1:104:1) id = 2062630391 and indid = 2.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086755700736 owned by data record identified by RID = (1:105:2) id = 1987652878 and indid = 1.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086755766272 owned by data record identified by RID = (1:105:3) id = 1987652878 and indid = 2.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086755831808 owned by data record identified by RID = (1:105:4) id = 1987652878 and indid = 3.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086755897344 owned by data record identified by RID = (1:105:5) id = 1987652878 and indid = 4.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086755962880 owned by data record identified by RID = (1:105:6) id = 1987652878 and indid = 5.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086756028416 owned by data record identified by RID = (1:105:7) id = 1987652878 and indid = 6.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086756093952 owned by data record identified by RID = (1:105:8) id = 1987652878 and indid = 7.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086756159488 owned by data record identified by RID = (1:105:9) id = 1987652878 and indid = 8.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750326784 owned by data record identified by RID = (1:106:0) id = 230524521 and indid = 1.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750392320 owned by data record identified by RID = (1:106:1) id = 230524521 and indid = 2.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750457856 owned by data record identified by RID = (1:106:2) id = 230524521 and indid = 3.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750523392 owned by data record identified by RID = (1:106:3) id = 230524521 and indid = 4.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750588928 owned by data record identified by RID = (1:106:4) id = 230524521 and indid = 5.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750654464 owned by data record identified by RID = (1:106:5) id = 230524521 and indid = 6.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750720000 owned by data record identified by RID = (1:106:6) id = 230524521 and indid = 7.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086750785536 owned by data record identified by RID = (1:106:7) id = 230524521 and indid = 8.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746329088 owned by data record identified by RID = (1:106:9) id = 230653052 and indid = 2.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746394624 owned by data record identified by RID = (1:106:10) id = 230653052 and indid = 3.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746460160 owned by data record identified by RID = (1:106:11) id = 230653052 and indid = 4.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746591232 owned by data record identified by RID = (1:106:13) id = 230653052 and indid = 6.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746656768 owned by data record identified by RID = (1:106:14) id = 230653052 and indid = 7.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 1086746722304 owned by data record identified by RID = (1:106:15) id = 230653052 and indid = 8.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 108674678

и т.д. подбные сообщения
   mihalich979
 
7 - 07.12.20 - 11:41
(4) никуда переходить не надо - это для архива база. Смотрят прошлые данные периодически.
   trdm
 
8 - 07.12.20 - 11:53
(4) > Хороший повод выкинуть 77 и перейти на 8

Фотомодель на бегемота менять.
   Злопчинский
 
9 - 07.12.20 - 12:06
(8) боди-позитив!
   trdm
 
10 - 07.12.20 - 12:08
(9) это из той же серии, что и лояльность к геям? фубля.
   ДенисЧ
 
11 - 07.12.20 - 12:42
(10) если ты называешь их геями, то ты уже лоялен к ним )))
   Андрей_Андреич
 
12 - 07.12.20 - 12:48
(11) Не все в сортах афна разбираются
   trdm
 
13 - 07.12.20 - 12:56
(11) когда уже выпустишся из детского сада?
   pvase
 
14 - 07.12.20 - 13:16
(6) После операции, если база останется живой, попробуй снова выгрузить. Но судя по всему нужно готовиться к восстановлению из бэкапа.
   mihalich979
 
15 - 07.12.20 - 13:26
(14) в том то и дело.
работаем с тем что есть.

нету бекапа.
   Злопчинский
 
16 - 07.12.20 - 13:44
(15) ССЗБ
   mihalich979
 
17 - 07.12.20 - 14:07
(16) не совсем ясно о чем вы.

я тут недавно работаю.
разбираю то что мне оставили.
вот добрался до старых баз 77.
сервак наладом дышит. (диски 2008 года / райд 1)
я с него все базы кроме одной выгрузил. и планирую сделать файловый вариант. для редкого обращения одного пользователя - достаточно.
   mihalich979
 
18 - 07.12.20 - 14:09
запустил из конфигуратора - тестирование и исправление.

делаю все естественно в копии. сделал из сервака Виртальную машину (100% копию) под Hyper-V

сам сервак пока не трогаю.
   Mikeware
 
19 - 07.12.20 - 14:16
(17) чем-чем сервак дышит?
   mihalich979
 
20 - 07.12.20 - 16:08
ну так есть у кого решение как восстановить базу?

тестирование и исправление все еще продолжается. Файл SQL - 13 гб
   Mikeware
 
21 - 07.12.20 - 16:11
(20) из бэкапа.
есть вариант выгрузить таблицы по максимуму (что выгрузится), и загружать в чистую базу, но это решение "на любителя"... (ну, который любит "стоя на лыжах в гамаке")
   mihalich979
 
22 - 07.12.20 - 17:12
(21) вы читали ветку?

в посте 15 я написал что бекапа нет.
   trdm
 
23 - 07.12.20 - 17:13
(21) ++
Регулярный ночерный бекап + 
скидывать в справочник измененные объекты и регламентом на серваке выгружаешь в джейсон или xml
+ обработка загрузки этих обжектов.
   mihalich979
 
24 - 07.12.20 - 17:15
Тестирование и исправление не прошло:

Ошибка:
SQL State: HY000
Native: 7105
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Page(1:1184708), slot 1 for text, ntext, or image node does not exist.
   trdm
 
25 - 07.12.20 - 17:15
(20) > ну так есть у кого решение как восстановить базу?

а как восстановить, если фигический коррупт файлов в ms sql пошел.
натравить сторонний парсер разве что на mfl/ldf.
где-то в сети была софтина. гуглить надо.
   mihalich979
 
26 - 07.12.20 - 17:17
я просто в SQL совсем не рублю. вот и спрашиваю.
   trdm
 
27 - 07.12.20 - 17:17
гуглеж типа recovery ms sql data base
   trdm
 
28 - 07.12.20 - 17:19
ну вот и результ:
https://sql.recoverytoolbox.com/ru/
   mihalich979
 
29 - 07.12.20 - 17:20
нашел какой-то двернючий бекап!


хоть бы хоть бы ..... *скрестил пальцы*

завтра буду его пробовать восстановить.
   mihalich979
 
30 - 08.12.20 - 11:28
ура!

бекап оказался жив. база в режиме 1с предприятие запустилась без ошибок

сейчас сделаю выгрузку данных и переведу в файловый режим.


Судя по всему сломанную базу SQL восстановить бы не получилось.
 
 Рекламное место пустует
   mihalich979
 
31 - 09.12.20 - 15:37
Базу удалось выгрузить в файловый вариант
с приключениями конечно, но получилось (файл выгрузки базы более 2гб, кто знает тот поймет).


теперь новая трабла не работают отчеты.

я все папки отчетов и пользователей скопировал.
запускаю внешний отчет и блин ошибка в каждом что попробовал: "Значение не представляет агрегатный объект (ВыбратьСтроки)"

вот напрмер:
{C:\1C77BASES\PRODACTION\EXTFORMS\MYERT\БЭКОФИС\SALE2.ERT(265)}: Значение не представляет агрегатный объект (ВыбратьСтроки)

кто тут по 77 есть эксперт?
   Mikeware
 
32 - 09.12.20 - 15:40
(31) а что, для этого надо быть экспертом?
   ДенисЧ
 
33 - 09.12.20 - 15:42
(31) 1с-спец по платформе 77 подойдёт? Или обязательно не ниже эксперта?
   mihalich979
 
34 - 09.12.20 - 15:43
подойдет хоть дворник.

лишь бы понять что с отчетами не так.
   ДенисЧ
 
35 - 09.12.20 - 15:47
Наверное, нужно заглянуть в файл SALE2.ERT в строку 265...
Нам отсюда не видно, мы не эксперты, и не дворники... Мы скромные специалисты...

)))
   mihalich979
 
36 - 09.12.20 - 15:53
(35) вот что в этой строке:  ВремТЗ.ВыбратьСтроки();
толку от того что тут написано не много.

вопрос вот в чем а могло сломаться если из SQL в файловый перевели базу?
   ДенисЧ
 
37 - 09.12.20 - 15:54
А откуда берётся эта ВРемТЗ?
Или мне пассатижЫ чОрные достать?
   mihalich979
 
38 - 09.12.20 - 15:56
Перем РС; 
Перем ВремТЗ; 
Перем Таб;  
Перем Автр, КоличествоПоставок, СредняяПоставка;  

Процедура ВыводИнфы(ВремТЗ1) Далее    
Процедура ЗапросСПП2()  Далее  
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Функция ПроверкаДоступа() 
Если (НазваниеНабораПрав()<>"Администратор") и  (ПустоеЗначение(ВыбКонтрагенты)=1) Тогда
                    Предупреждение("Выберите контрагента!",15);
               Возврат 1; 
 КонецЕсли; 
 Если (НазваниеНабораПрав()="СтМенеджер") или (НазваниеНабораПрав()="Менеджер") Тогда
      СписокДоступа=СоздатьОбъект("СписокЗначений"); 
      СпрДоп=СоздатьОбъект("Справочник.ПраваДоступа"); 
      СпрПод=СоздатьОбъект("Справочник.ПраваПодчиненный");
           Если СпрДоп.НайтиПоНаименованию(Автр)=0 Тогда 
             Предупреждение("Доступ запрещен",5);
             Возврат 1; 
           КонецЕсли;  
           СпрПод.ИспользоватьВладельца(СпрДоп.ТекущийЭлемент()); 
        СпрПод.ВыбратьЭлементы();
        Пока СпрПод.ПолучитьЭлемент()=1 Цикл 
              Если  СпрПод.ПометкаУдаления()=1 Тогда
                  Продолжить;
              КонецЕсли;
              СписокДоступа.ДобавитьЗначение(СпрПод.Наименование);
        КонецЦикла;  
        Если   СписокДоступа.РазмерСписка()=0 Тогда
                   Предупреждение("Доступ запрещен",5);
                Возврат 1;
         КонецЕсли;
            Эталон="";
         Эталон=СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование);
         Если  СписокДоступа.НайтиЗначение(Эталон)=0 Тогда
                   Предупреждение("Доступ запрещен",5);
                Возврат 1;
        КонецЕсли;         
 КонецЕсли; 
      Возврат 0;
КонецФункции    
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Функция ПроверкаДоступа2()
    F1=0;   
    Если (НазваниеНабораПрав()<>"Администратор") и  (ПустоеЗначение(ВыбКонтрагенты)=1) Тогда
                    Предупреждение("Выберите контрагента!",15);
               Возврат 1; 
     КонецЕсли;          
    Если НазваниеНабораПрав()="Менеджер" Тогда
         Если СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)<>СокрЛП(Автр) Тогда
             Если (Автр="Шилякова") и ((ВыбКонтрагенты.Код="КЛ-00314") или (ВыбКонтрагенты.Код="КЛ-00358") или (ВыбКонтрагенты.Код="КЛ-00369")) 
              или   (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Шиманов")
             или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Давыдова")
             Тогда                                                                                
                 F1=0;
             ИначеЕсли ((Автр="Солопов") и (ВыбКонтрагенты.Код="КЛ-00334")) Тогда
            F1=0;
            ИначеЕсли ((Автр="Шиманов") и (ВыбКонтрагенты.Код="КЛ-00488")) Тогда
            F1=0;
           Иначе       
                 Предупреждение("Клиент "+ ВыбКонтрагенты + " не ваш.
                       |  Обратитесь к руководству компании",15);
             F1=1; 
            КонецЕсли;
        Иначе
          F1=0;
        КонецЕсли; 
    ИначеЕсли НазваниеНабораПрав()="СтМенеджер" Тогда
        //---Крючкова

         Если ИмяПользователя()="Крючкова" Тогда
              Если (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Шиманов") или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Шилякова") 
              или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Крючкова") или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Давыдова") Тогда
                          F1=0;
                  Иначе
                         Предупреждение("У Вас есть доступ только к менеджеру Шиманову и Шиляковой",15); 
                      F1=1;
                   КонецЕсли;
        //---Чернышева 

        ИначеЕсли ИмяПользователя()="Чернышева" Тогда
               Если   (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Чернышева") 
               или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Андронова")  
               или (СокрЛП(ВыбКонтрагенты.ТорговыйПредставитель.Наименование)="Давыдова") Тогда
                    F1=0;
                  Иначе
                         Предупреждение("У Вас есть доступ только к менеджеру Андроновой",15); 
                      F1=1;
                     КонецЕсли;
        //---Кто-то с правами стменеджер    

        Иначе
            F1=1;
        КонецЕсли;    
        
     ИначеЕсли (НазваниеНабораПрав()="Администратор") или (НазваниеНабораПрав()="БэкОфис") Тогда
         F1=0;
     Иначе
        Предупреждение(Автр+ " доступ запрещен,15"); 
        F1=1;
    КонецЕсли;
      Возврат F1;
КонецФункции
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 Процедура ПриВыбореКонтрагента()
              F=ПроверкаДоступа();
              Если F=1 Тогда
                       Форма.Сформировать.Доступность(0);
                       СтатусВозврата(0);
                       Возврат;
               КонецЕсли; 
 КонецПроцедуры
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура ПриОткрытии()  
    СпрПол=СоздатьОбъект("Справочник.Пользователи");
    Если СпрПол.НайтиПоКоду(ИмяПользователя())=1 Тогда  
        Автр=СпрПол.ТекущийЭлемент().Наименование;
    Иначе
        Предупреждение("Вы не зарегистрированы в системе 
        | Обратитесь к системному администратору!");
        Возврат;
    КонецЕсли;
    
            Общая=1;
            Таб=СоздатьОбъект("Таблица");
            Таб.ИсходнаяТаблица("Таблица"); 
              
            //СпрКтр=СоздатьОбъект("Справочник.Контрагенты");

        //Если СпрКтр.НайтиПоКоду("КЛ-00385",0) =1 Тогда

        //     ВыбКонтрагенты=СпрКтр.ТекущийЭлемент();

        //КонецЕсли;

              НачДата=НачМесяца(ТекущаяДата());
         КонДата=КонМесяца(ТекущаяДата());       
КонецПроцедуры        
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура ЗапросСПП()  
//==============общие элементы=======================

ВЫБРАТЬ= "SELECT " ; 
Артик = "Left(Спр.CODE,2) as Артикул," ;               
дт_дк= "CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДк," ;              
ИЗ_жур="FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр," ;  
ГДЕ_дт="WHERE     (Жур.IsMark  =0) AND  (Жур.Closed & 1 =:Заказано) AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) AND" ;    
ГРУП="GROUP BY " ;    
Артик_гр ="Left(Спр.CODE,2) " ;              
дт_дк_гр=", CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) " ;          
СОЕДИНИТЬ="UNION ALL  
           |" ;      
//======================реализация======================             

СетТочки_р="$ДокР.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки]," ;       
Товар_р="$ДокРст.Товар as [Бутерброд $Справочник.Номенклатура]," ;        
Кол_р="SUM($ДокРст.Количество) as Количество, 0 as КоличествоО, 0 as КоличествоВ " ;     
Док_р="$ДокументСтроки.Реализация as ДокРст (NOLOCK),$Документ.Реализация as ДокР  (nolock) " ;   
ВидД_р="(Жур.IDDoc=ДокРст.IDDoc) AND (ДокР.IDDoc=ДокРст.IDDoc) AND (Жур.IDDocDef = $ВидДокумента.Реализация) AND ($ДокРст.Товар = Спр.ID)" ;          
Контр_р="AND ($ДокР.Контрагент = :ВыбКонтрагенты) " ;      
СетТ_р="AND ($ДокР.СетеваяТочка= :ВыбСетевыеТочки) " ;     
СетТочки_р_гр="$ДокР.СетеваяТочка," ;        
Товар_р_гр="$ДокРст.Товар," ;        
//======================обмен======================

СетТочки_б ="$ДокО.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки]," ;        
Товар_б ="$ДокОст.Товар as [Бутерброд $Справочник.Номенклатура]," ;        
Кол_б=" 0 as Количество, SUM($ДокОст.Количество) as КоличествоО, 0 as КоличествоВ " ;  
Док_б="$ДокументСтроки.Обмен as ДокОст (NOLOCK),$Документ.Обмен as ДокО  (nolock) " ; 
ВидД_б="(Жур.IDDoc=ДокОст.IDDoc) AND  (ДокО.IDDoc=ДокОст.IDDoc) AND (Жур.IDDocDef = $ВидДокумента.Обмен) AND ($ДокОст.Товар = Спр.ID)  " ;          
Контр_б="AND ($ДокО.Контрагент = :ВыбКонтрагенты) " ;         
СетТ_б="AND ($ДокО.СетеваяТочка= :ВыбСетевыеТочки) " ;    
СетТочки_б_гр="$ДокО.СетеваяТочка," ;        
Товар_б_гр="$ДокОст.Товар," ;        
//======================возврат======================        

СетТочки_в="$ДокВ.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки]," ;        
Товар_в="$ДокВст.Товар as [Бутерброд $Справочник.Номенклатура]," ;        
Кол_в="0 as Количество,0 as КоличествоО,SUM($ДокВст.Количество) as КоличествоВ " ;  
Док_в=" $ДокументСтроки.ВозвратОтПокупателя as ДокВст (NOLOCK),$Документ.ВозвратОтПокупателя as ДокВ  (nolock) " ; 
ВидД_в="(Жур.IDDoc=ДокВст.IDDoc) AND  (ДокВ.IDDoc=ДокВст.IDDoc) AND (Жур.IDDocDef = $ВидДокумента.ВозвратОтПокупателя) AND  ($ДокВст.Товар = Спр.ID)" ;  
Контр_в="AND ($ДокВ.Контрагент = :ВыбКонтрагенты) " ;    
СетТ_в="AND ($ДокВ.СетеваяТочка= :ВыбСетевыеТочки) " ;    
СетТочки_в_гр="$ДокВ.СетеваяТочка," ;    
Товар_в_гр="$ДокВст.Товар," ;    
//=============================  


               
        РС=СоздатьОбъект("ODBCRecordSet");
        //РС.Отладка(1);

          Зкз=?((Заказано-1)<0,1,0);
        РС.УстБД1С();
        РС.УстановитьТекстовыйПараметр("Заказано", Зкз);
        РС.УстановитьТекстовыйПараметр("НачДата", НачДата);
        РС.УстановитьТекстовыйПараметр("КонДата",КонДата);
//СетТочки_р Товар_р Кол_р Док_р ВидД_р Контр_р СетТ_р СетТочки_р_гр Товар_р_гр       

  
 Если ВесьПериод=1 Тогда
      дт_дк="";
      дт_дк_гр="";
 КонецЕсли;    
  
 Если ПустоеЗначение(ВыбКонтрагенты)=0 Тогда
       
      РС.УстановитьТекстовыйПараметр("ВыбКонтрагенты",ВыбКонтрагенты);
     Если ПустоеЗначение(ВыбСетевыеТочки)=0 Тогда
    РС.УстановитьТекстовыйПараметр("ВыбСетевыеТочки",ВыбСетевыеТочки);    
    СетТочки_р=""; СетТочки_р_гр=""; СетТочки_б=""; СетТочки_б_гр=""; СетТочки_в=""; СетТочки_в_гр="";
    Иначе//по всем точкам

     СетТ_р=""; СетТ_б=""; СетТ_в="";
    КонецЕсли;
   Иначе 
    Контр_р=""; Контр_б=""; Контр_в=""; 
    СетТ_р=""; СетТ_б=""; СетТ_в=""; 
  КонецЕсли;    
    
     ТекстЗапроса00 =
       ВЫБРАТЬ+"
       |"+               
       СетТочки_р+Товар_р +Артик+дт_дк +Кол_р +"
       |"+
       ИЗ_жур+Док_р +" 
       |"+
       ГДЕ_дт +ВидД_р +Контр_р+СетТ_р+"
       |"+
       ГРУП+" 
       |"+
          СетТочки_р_гр+Товар_р_гр+Артик_гр+дт_дк_гр   + "
       |"+                                                        
         СОЕДИНИТЬ+" 
       |"+  
       ВЫБРАТЬ+"
       |"+
          СетТочки_б+Товар_б +Артик+дт_дк +Кол_б + "
       |"+               
       ИЗ_жур+Док_б +"
       |"+
       ГДЕ_дт +ВидД_б +Контр_б+СетТ_б+"
       |"+
       ГРУП+ "
       |"+
          СетТочки_б_гр+Товар_б_гр+Артик_гр+дт_дк_гр   + "
       |"+              
         СОЕДИНИТЬ+"
       |"+  
       ВЫБРАТЬ+"
       |"+
         СетТочки_в+Товар_в +Артик+дт_дк +Кол_в +"
       |"+               
       ИЗ_жур+Док_в +"
       |"+
       ГДЕ_дт +ВидД_в +Контр_в+ СетТ_в+"
       |"+
       ГРУП+ "
       |"+
          СетТочки_в_гр+Товар_в_гр+Артик_гр+дт_дк_гр;           
    
        ВремТЗ = РС.ВыполнитьИнструкцию(ТекстЗапроса00); 
        
        Если ВесьПериод=1 Тогда 
          Если ПустоеЗначение(ВыбСетевыеТочки)=0 Тогда
              НомКолонки=3;
          Иначе
              НомКолонки=4;
          КонецЕсли;
        ВремТЗ.ВставитьКолонку("ДатаДк",НомКолонки,,,,,,,);    
        ВремТЗ.ВыбратьСтроки();
        Пока ВремТЗ.ПолучитьСтроку()=1 Цикл
             ВремТЗ.ДатаДк=КонДата;
        КонецЦикла;
       КонецЕсли;    
Если (ПустоеЗначение(ВыбКонтрагенты)=0) и (ПустоеЗначение(ВыбСетевыеТочки)=1)  Тогда              
        ВремТЗ.Сортировать("СетеваяТочка, ДатаДк");    
КонецЕсли;        
          ВремТЗ.ВыбратьСтроки();
        Пока ВремТЗ.ПолучитьСтроку()=1 Цикл
               ВремТЗ.Количество=ВремТЗ.Количество+ВремТЗ.КоличествоО;
               ВремТЗ.КоличествоВ=ВремТЗ.КоличествоВ+ВремТЗ.КоличествоО; 
               Если (ВремТЗ.Артикул="БЧ") или (ВремТЗ.Артикул="ББ") Тогда 
                         ВремТЗ.Артикул="Бутерброды";
              ИначеЕсли ВремТЗ.Артикул="СЛ" Тогда     
                       ВремТЗ.Артикул="Салаты"; 
               ИначеЕсли ВремТЗ.Артикул="СК" Тогда
                     ВремТЗ.Артикул="Соки"; 
              КонецЕсли;    
        КонецЦикла;
  
    КонецПроцедуры
    
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Функция Колонка(N);
     Колонка="_"+СокрЛП(Строка(N)); 
    Возврат  Колонка;
КонецФункции
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  СозданиеКолонок(Т0,Счетчик)
Для i=1 По Счетчик Цикл
         Т0.НоваяКолонка(Колонка(i),"Число");     
КонецЦикла;         
КонецПроцедуры         
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Функция ПроценВозврата(N,L)
        Если L>0 Тогда
                Если N>0 Тогда
                 Процент=Окр((L*100)/N,0);
                Иначе
                Процент=100;        
             КонецЕсли;        
        Иначе 
        Процент=0;    
         КонецЕсли;
    Возврат  Процент;
КонецФункции
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  Шапка(N,Т1)
    Таб.ВывестиСекцию("2|в01");
    Если ВесьПериод=0 Тогда 
    Для i=1 По N Цикл 
    Если Цел(i/2)<>i/2 Тогда
        Продолжить;
    КонецЕсли;
    Дата01=Т1.ПолучитьЗначение(i/2,"ДатаДк");    
    Таб.ПрисоединитьСекцию("2|в02"); 
   КонецЦикла;
    КонецЕсли;
      Таб.ПрисоединитьСекцию("2|в03");
      Если ВесьПериод=0 Тогда         
         Таб.ПрисоединитьСекцию("2|в04"); 
    КонецЕсли;     
КонецПроцедуры    
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Функция Секция(S,Pr)  
              S=?(Pr>10,S+"а",S);
    Возврат S
КонецФункции        
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  Тело(Т3)   
         N=Т3.КоличествоКолонок()-4;
         Колонка01=Колонка((Т3.КоличествоКолонок()-3));
         Колонка02=Колонка((Т3.КоличествоКолонок()-2));    
         Колонка03=Колонка((Т3.КоличествоКолонок()-1));      
         ИтВсОтгр=Т3.Итог(Колонка01);     
         ИтВсВоз=Т3.Итог(Колонка02);
         ИтПроц =ПроценВозврата(ИтВсОтгр,ИтВсВоз);     
         ИтВсПрод=ИтВсОтгр-ИтВсВоз;
Т3.ВыбратьСтроки() ;  ВсегоКоличествоПоставок=0;   
Пока Т3.ПолучитьСтроку()=1 Цикл
                Ном=Т3.НомерСтроки;
                Название=Т3.ПолучитьЗначение(Ном,1); 
                ВсОтгр=Т3.ПолучитьЗначение(Ном,Колонка01);
                ВсВоз=Т3.ПолучитьЗначение(Ном,Колонка02);
                ВсПрод=ВсОтгр-ВсВоз;  
                Проц=Т3.ПолучитьЗначение(Ном,Колонка03);
               Sec=Секция("3",Проц) ; 
             
            Таб.ВывестиСекцию(Sec+"|в01"); 
              КоличествоПоставок=0;    
        Если ВесьПериод=0 Тогда 
            Для i=1 По N Цикл 
                 Если Цел(i/2)<>i/2 Тогда
                          Продолжить;
                 КонецЕсли;
                        Колонка04=Колонка(i-1);   Колонка05=Колонка(i);
                       Отгр=Т3.ПолучитьЗначение(Ном,Колонка04); 
                 Если Отгр>0 Тогда  
                       КоличествоПоставок=КоличествоПоставок+1;
                 КонецЕсли;
                       Возв=Т3.ПолучитьЗначение(Ном,Колонка05);  
                       Таб.ПрисоединитьСекцию(Sec+"|в02");
             КонецЦикла;
            КонецЕсли;    
            СредняяПоставка=0;
         Если КоличествоПоставок>0 Тогда 
               ВсегоКоличествоПоставок=ВсегоКоличествоПоставок+КоличествоПоставок;
               СредняяПоставка=Окр(ВсПрод/КоличествоПоставок,0)
         КонецЕсли;
            Таб.ПрисоединитьСекцию(Sec+"|в03"); 
    Если ВесьПериод=0 Тогда         
         Таб.ПрисоединитьСекцию(Sec+"|в04"); 
    КонецЕсли;     
КонецЦикла;   
//===итоги===========================

Sec=Секция("4",ИтПроц) ;    
Таб.ВывестиСекцию(Sec+"|в01"); 
Если ВесьПериод=0 Тогда 
Для i=1 По N Цикл 
       Если Цел(i/2)<>i/2 Тогда
            Продолжить;
      КонецЕсли;
    Колонка04=Колонка(i-1);   Колонка05=Колонка(i);
      ИтОтгр=Т3.Итог(Колонка04);    
    ИтВозв=Т3.Итог(Колонка05);       
    Таб.ПрисоединитьСекцию(Sec+"|в02");   
КонецЦикла;
КонецЕсли;
Таб.ПрисоединитьСекцию(Sec+"|в03"); 
Если ВесьПериод=0 Тогда         
         Таб.ПрисоединитьСекцию(Sec+"|в04"); 
КонецЕсли;  
КонецПроцедуры
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура СверткаПоБутерам(ТБТ)
    Спр=СоздатьОбъект("Справочник.Номенклатура");
    ТБТ.НоваяКолонка("Код");
    ТБТ.ВыбратьСтроки();
Пока ТБТ.ПолучитьСтроку()=1 Цикл
 ТБТ.Код=СокрЛП(ТБТ.Бутерброд.Код);    
Если  (Лев(ТБТ.Код,2)="ББ") или  (Лев(ТБТ.Код,2)="БЧ")Тогда
    ТБТ.Код=Прав(СокрЛП(ТБТ.Код),5);
    Если Лев(ТБТ.Код,2)="СМ" Тогда
           ТБТ.Код="СТ."+Прав(СокрЛП(ТБТ.Код),2);
    КонецЕсли; 
КонецЕсли;    
КонецЦикла;  

Свертка="";
Для i=1 По ТБТ.КоличествоКолонок()-2 Цикл 
    Если i=1 Тогда
            Свертка=Колонка(i); 
    Иначе
        Свертка=Свертка+","+Колонка(i); 
      КонецЕсли;        
КонецЦикла;      
        ТБТ.Свернуть("Код",Свертка); 
        
        ТБТ.ВставитьКолонку("Бутерброд",1,,,,,,,);
        ТБТ.ВыбратьСтроки();
Пока ТБТ.ПолучитьСтроку()=1 Цикл
    Если Спр.НайтиПоКоду("БЧ."+ТБТ.Код,0)=1 Тогда
        ТБТ.Бутерброд=СтрЗаменить(СокрЛП(Строка(Спр.ТекущийЭлемент())),"Чер."," ");
    ИначеЕсли Спр.НайтиПоКоду("ББ."+ТБТ.Код,0)=1 Тогда
        ТБТ.Бутерброд=СтрЗаменить(СокрЛП(Строка(Спр.ТекущийЭлемент())),"Бел."," "); 
    ИначеЕсли Спр.НайтиПоКоду(ТБТ.Код,0)=1 Тогда
        ТБТ.Бутерброд=СокрЛП(Строка(Спр.ТекущийЭлемент()));
    КонецЕсли;
                           Колонка01=Колонка((ТБТ.КоличествоКолонок()-2));
                 Колонка02=Колонка((ТБТ.КоличествоКолонок()-3));
                 Колонка03=Колонка((ТБТ.КоличествоКолонок()-4));
    ТБТ.УстановитьЗначение(ТБТ.НомерСтроки,Колонка01,ПроценВозврата(ТБТ.ПолучитьЗначение(ТБТ.НомерСтроки,Колонка03),ТБТ.ПолучитьЗначение(ТБТ.НомерСтроки,Колонка02)));             
КонецЦикла;   
             ТБТ.УдалитьКолонку("Код"); 
        ТБТ.Сортировать("Бутерброд");     
        
КонецПроцедуры  
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  Макет(N, Флаг,ТЗ_4)
    ТЗ_0=СоздатьОбъект("ТаблицаЗначений");  
    ТЗ_1=СоздатьОбъект("ТаблицаЗначений");  
    ТЗ_2=СоздатьОбъект("ТаблицаЗначений");  
    ТЗ_3=СоздатьОбъект("ТаблицаЗначений"); 
    ТЗ_4.Выгрузить(ТЗ_0); 
    ТЗ_4.Выгрузить(ТЗ_1); 
    ТЗ_4.Выгрузить(ТЗ_2);  
    
    ТЗ_0.Свернуть(N,"Количество,КоличествоВ");  
    ТЗ_0.Выгрузить(ТЗ_3,,,1);  
      
    ТЗ_3.Сортировать("1");  
    
    ТЗ_1.Свернуть("ДатаДк","Количество, КоличествоВ"); 
    ТЗ_1.Сортировать("ДатаДк");
  
    ТЗ_2.Свернуть(СокрЛП(Строка(N))+", ДатаДк","Количество, КоличествоВ"); 
    ТЗ_2.Сортировать("1, ДатаДк"); 

    КолКолонок=ТЗ_1.КоличествоСтрок()*2+3;
    СозданиеКолонок(ТЗ_3,КолКолонок); 
    
     
    ТЗ_2.ВыбратьСтроки();
     Пока ТЗ_2.ПолучитьСтроку()=1 Цикл 
               Стр="";   
         Поиск= ТЗ_2.ПолучитьЗначение(ТЗ_2.НомерСтроки,1);
              Если ТЗ_3.НайтиЗначение(Поиск,Стр,1)=1 Тогда
                     Стр2="";
                     Если  ТЗ_1.НайтиЗначение(ТЗ_2.ДатаДк,Стр2,"ДатаДк")=1 Тогда
                                   Колонка01=Колонка((Стр2*2)-1);  Колонка02=Колонка(Стр2*2); 
                                ТЗ_3.УстановитьЗначение(Стр,Колонка01,ТЗ_2.Количество); 
                           ТЗ_3.УстановитьЗначение(Стр,Колонка02,ТЗ_2.КоличествоВ);       
                     КонецЕсли;
              КонецЕсли;
    КонецЦикла;  
    //========= и т о г и   в   к о н ц е  т а б л иц ы==========

    ТЗ_0.ВыбратьСтроки();
     Пока ТЗ_0.ПолучитьСтроку()=1 Цикл       
              Стр="";  
             Поиск= ТЗ_0.ПолучитьЗначение(ТЗ_0.НомерСтроки,1);     
            Если ТЗ_3.НайтиЗначение(Поиск,Стр,1)=1 Тогда
                      Колонка01=Колонка((ТЗ_3.КоличествоКолонок()-3));
                 Колонка02=Колонка((ТЗ_3.КоличествоКолонок()-2));
                 Колонка03=Колонка((ТЗ_3.КоличествоКолонок()-1));  
                 ТЗ_3.УстановитьЗначение(Стр,Колонка01,ТЗ_0.Количество); 
                 ТЗ_3.УстановитьЗначение(Стр,Колонка02,ТЗ_0.КоличествоВ); 
                 ТЗ_3.УстановитьЗначение(Стр,Колонка03,ПроценВозврата(ТЗ_0.Количество,ТЗ_0.КоличествоВ)); 
           КонецЕсли;        
    КонецЦикла;  
    //========= б е з   х л е б а ========================

    Если (БезХлеба=1) и (Флаг=1) Тогда
        СверткаПоБутерам(ТЗ_3);  
    КонецЕсли;
    //==============================================

    Шапка(ТЗ_3.КоличествоКолонок()-4,ТЗ_1);  
    Тело(ТЗ_3);
КонецПроцедуры
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  ПоСТ()
    Т0=СоздатьОбъект("ТаблицаЗначений"); 
    
    ВремТЗ.Выгрузить(Т0);
    
    Т0.Свернуть("СетеваяТочка","Количество,КоличествоВ");
    Т0.Сортировать("СетеваяТочка"); 
    ВремТЗ.Сортировать("СетеваяТочка"); 
    Т0.ВыбратьСтроки();
    Пока Т0.ПолучитьСтроку()=1 Цикл 
        Первое=0; Последнее=0;
        Т1=СоздатьОбъект("ТаблицаЗначений"); 
        //найдем первое совпадение

        ВремТЗ.ВыбратьСтроки();
        Пока ВремТЗ.ПолучитьСтроку()=1 Цикл 
            Если (Т0.СетеваяТочка=ВремТЗ.СетеваяТочка) и (Первое=0)  Тогда
                      Первое=ВремТЗ.НомерСтроки; 
            ИначеЕсли (Т0.СетеваяТочка=ВремТЗ.СетеваяТочка) и (Первое<>0)  Тогда
                   Последнее=ВремТЗ.НомерСтроки; 
            КонецЕсли;  
            Если  Последнее=0 Тогда
                      Последнее=Первое;
            КонецЕсли;  
        КонецЦикла;   
       ВремТЗ.Выгрузить(Т1,Первое,Последнее,); 
       Наименование=СокрЛП(Строка(Т0.СетеваяТочка))+" "+СокрЛП(Строка(Т0.СетеваяТочка.ПочтовыйАдрес));
       Если ПоПродукции=1 Тогда
       Иначе
       Таб.ВывестиСекцию("5");
       Макет(2,1,Т1);
       КонецЕсли;
       Наименование="Сводные итоги по продукции ("+СокрЛП(Строка(Наименование))+")";
       Таб.ВывестиСекцию("5");
       Макет(3,0,Т1);
    КонецЦикла;
КонецПроцедуры
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура  Сборка()
    F=ПроверкаДоступа();
              Если F=1 Тогда
                       Форма.Сформировать.Доступность(0);
                       СтатусВозврата(0);
                       Возврат;
               КонецЕсли;     
    Если ((Общая=0) и (СетТоч=0)) или (ПустоеЗначение(ВыбКонтрагенты)=1) Тогда
         Предупреждение("Не понятно, что нужно?"); 
         Возврат;
    КонецЕсли;  
If ПоПродукции=0 Then      
    Таб.ВывестиСекцию("1");
        ЗапросСПП(); 
    Если Общая=1 Тогда
      
       Если (ПустоеЗначение(ВыбКонтрагенты)=0) и (ПустоеЗначение(ВыбСетевыеТочки)=1)  Тогда 
            Макет(1,0,ВремТЗ);
         Макет(2,1,ВремТЗ); 
         Макет(3,0,ВремТЗ);  
      Иначе
         СетТоч=0;
         Макет(1,1,ВремТЗ);
         Макет(2,0,ВремТЗ); 
       КонецЕсли;  
      КонецЕсли;  
      //=== по сетевым точкам === 

      Если СетТоч=1 Тогда
            ПоСТ(); 
        КонецЕсли;
      Таб.ПараметрыСтраницы(2,,,5,5,5,5,0,0,1,,);    
      Таб.Опции(0,0,5,2,);
      Таб.Показать();   
Else
     ЗапросСПП2();
EndIf;     
КонецПроцедуры
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Процедура ЗапросСПП2()  
        РС=СоздатьОбъект("ODBCRecordSet");
        РС.УстБД1С();
        РС.УстановитьТекстовыйПараметр("НачДата", НачДата);
        РС.УстановитьТекстовыйПараметр("КонДата",КонДата);
            РС.УстановитьТекстовыйПараметр("ВыбКонтрагенты",ВыбКонтрагенты);
      
        

Если (ВыбКонтрагенты.Код="КЛ-00663") ИЛИ (ВыбКонтрагенты.Код="КЛ-10106") Тогда    
    
    

  ТекстЗапроса00 ="
   |SELECT 
   |$ДокР.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки], 
   |$Спр.ТипПродукции as [ТипТовара $Перечисление.ТипПродукции],  
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДк,
   |SUM($ДокРст.Количество) as Количество, 
   |0 as КоличествоВ
   |FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр,
   |$ДокументСтроки.Реализация as ДокРст (NOLOCK),$Документ.Реализация as ДокР  (nolock)          
   |WHERE 
   |(Жур.IsMark  =0) 
   |AND  (Жур.Closed & 1 =1) 
   |AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) 
   |AND  (Жур.IDDoc=ДокРст.IDDoc) AND (ДокР.IDDoc=ДокРст.IDDoc) 
   |AND (Жур.IDDocDef = $ВидДокумента.Реализация) AND ($ДокРст.Товар = Спр.ID) 
   |AND ($ДокР.Контрагент = :ВыбКонтрагенты) 
   |GROUP BY    
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime), 
   |$ДокР.СетеваяТочка,
   |$Спр.ТипПродукции
   |";
   
   ВремТЗ = РС.ВыполнитьИнструкцию(ТекстЗапроса00); 
        
    
//определим возвраты по раменке  ПродажиБПСС  


РС.УстановитьТекстовыйПараметр("НачДата",НачМесяца(НачДата));
РС.УстановитьТекстовыйПараметр("КонДата",КонДата);
РС.УстановитьТекстовыйПараметр("ВыбКонтрагенты",ВыбКонтрагенты);

ТекстЗапроса3 = " 
|SELECT
|  Max(CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime)) as ДатаДк
|FROM
|  $Документ.ПродажиБПСС as ДокР  (nolock), 
|  _1SJourn as Жур (nolock)
|WHERE
|  (Жур.IDDoc=ДокР.IDDoc) AND 
|  (Жур.IDDocDef = $ВидДокумента.ПродажиБПСС) AND
|  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) AND
|  ($ДокР.Контрагент = :ВыбКонтрагенты) 
|";

Врем02= РС.ВыполнитьИнструкцию(ТекстЗапроса3);
Если Врем02.КоличествоСтрок()>0 Тогда
Врем02.Сортировать("ДатаДк-");
ВозвратыНаДату=Врем02.ПолучитьЗначение(1,"ДатаДк");
//определим количество отгруженных на эту дату и количество проданых 

РС.УстановитьТекстовыйПараметр("НачДата", НачДата); 
РС.УстановитьТекстовыйПараметр("КонДата",ВозвратыНаДату);
РС.УстановитьТекстовыйПараметр("ВыбКонтрагенты",ВыбКонтрагенты);    


ТекстЗапроса3 ="
   |SELECT 
   |$ДокР.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки],
   |$Спр.ТипПродукции as [ТипТовара $Перечисление.ТипПродукции], 
   |SUM($ДокРст.Количество) as Количество, 
   |0 as КоличествоП 
   |FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр,
   |$ДокументСтроки.Реализация as ДокРст (NOLOCK),$Документ.Реализация as ДокР  (nolock)          
   |WHERE     
   |(Жур.IsMark  =0) 
   |AND  (Жур.Closed & 1 =1) 
   |AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) 
   |AND    (Жур.IDDoc=ДокРст.IDDoc) AND (ДокР.IDDoc=ДокРст.IDDoc) 
   |AND (Жур.IDDocDef = $ВидДокумента.Реализация) 
   |AND ($ДокРст.Товар = Спр.ID) 
   |AND ($ДокР.Контрагент = :ВыбКонтрагенты) 
   |GROUP BY    
   |$ДокР.СетеваяТочка,
   |$Спр.ТипПродукции
   |
   |UNION ALL
   |
   |SELECT 
   |$ДокБ.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки],
   |$Спр.ТипПродукции as [ТипТовара $Перечисление.ТипПродукции], 
   |0 as Количество, 
   |SUM($ДокБст.Количество) as КоличествоП 
   |FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр,
   |$ДокументСтроки.ПродажиБПСС as ДокБст (NOLOCK),$Документ.ПродажиБПСС as ДокБ  (nolock)          
   |WHERE     
   |(Жур.IsMark  =0) 
   |AND  (Жур.Closed & 1 =1) 
   |AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) 
   |AND    (Жур.IDDoc=ДокБст.IDDoc)
   |AND (ДокБ.IDDoc=ДокБст.IDDoc) 
   |AND (Жур.IDDocDef = $ВидДокумента.ПродажиБПСС) 
   |AND ($ДокБст.Товар = Спр.ID) 
   |AND ($ДокБ.Контрагент = :ВыбКонтрагенты) 
   |GROUP BY    
   |$ДокБ.СетеваяТочка,
   |$Спр.ТипПродукции
   |";
   
   Врем01= РС.ВыполнитьИнструкцию(ТекстЗапроса3);
   Врем01.Свернуть("СетеваяТочка,ТипТовара","Количество,КоличествоП");
   Врем01.НоваяКолонка("КоличествоВ","Число");
   Врем01.ВыбратьСтроки();
    Пока Врем01.ПолучитьСтроку()=1 Цикл
        Врем01.КоличествоВ=?((Врем01.Количество-Врем01.КоличествоП)>0,(Врем01.Количество-Врем01.КоличествоП),0); 
    КонецЦикла; 
       
   Врем01.ВыбратьСтроки(); 
   Пока Врем01.ПолучитьСтроку()=1 Цикл
          ВремТЗ.НоваяСтрока();
          ВремТЗ.СетеваяТочка=Врем01.СетеваяТочка;
          ВремТЗ.ТипТовара=Врем01.ТипТовара;
          ВремТЗ.КоличествоВ=Врем01.КоличествоВ;
          ВремТЗ.ДатаДк=КонДата;
   КонецЦикла;    
    
    
Иначе    
    ТекстЗапроса00 ="
   |SELECT 
   |$ДокР.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки], 
   |$Спр.ТипПродукции as [ТипТовара $Перечисление.ТипПродукции], 
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДк,
   |SUM($ДокРст.Количество) as Количество, 
   |0 as КоличествоВ
   |FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр,
   |$ДокументСтроки.Реализация as ДокРст (NOLOCK),$Документ.Реализация as ДокР  (nolock)          
   |WHERE     
   |(Жур.IsMark  =0)  
   |AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)
   |AND (Жур.Closed & 1 =1)  
   |AND (Жур.IDDoc=ДокРст.IDDoc) AND (ДокР.IDDoc=ДокРст.IDDoc) 
   |AND (Жур.IDDocDef = $ВидДокумента.Реализация) 
   |AND ($ДокРст.Товар = Спр.ID) 
   |AND ($ДокР.Контрагент = :ВыбКонтрагенты) 
   |GROUP BY    
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime),
   |$ДокР.СетеваяТочка,
   |$Спр.ТипПродукции
   |
   |UNION ALL
   |
   |SELECT 
   |$ДокВ.СетеваяТочка as [СетеваяТочка $Справочник.СетевыеТочки], 
   |$Спр.ТипПродукции as [ТипТовара $Перечисление.ТипПродукции], 
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДк,
   |0 as КоличествоВ,
   |SUM($ДокВст.Количество) as Количество 
   |FROM  _1SJourn as Жур (nolock), $Справочник.Номенклатура as Спр,
   |$ДокументСтроки.ВозвратОтПокупателя as ДокВст (NOLOCK),$Документ.ВозвратОтПокупателя  as ДокВ  (nolock)          
   |WHERE     
   |(Жур.IsMark  =0)  
   |AND  (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) 
   |AND (Жур.Closed & 1 =1)  
   |AND (Жур.IDDoc=ДокВст.IDDoc) AND (ДокВ.IDDoc=ДокВст.IDDoc) 
   |AND (Жур.IDDocDef = $ВидДокумента.ВозвратОтПокупателя) 
   |AND ($ДокВст.Товар = Спр.ID) 
   |AND ($ДокВ.Контрагент = :ВыбКонтрагенты) 
   |GROUP BY
   |CAST (LEFT(Жур.Date_Time_IDDoc, 8) as DateTime),
   |$ДокВ.СетеваяТочка,
   |$Спр.ТипПродукции
   |
   |";
   
          //РС.Отладка(1);

        ВремТЗ = РС.ВыполнитьИнструкцию(ТекстЗапроса00); 
        



КонецЕсли; 
КонецЕсли;    
 ВремТЗ.Свернуть("СетеваяТочка, ТипТовара,ДатаДк","Количество,КоличествоВ"); 
 ВремТЗ.Сортировать("СетеваяТочка, ДатаДк");    

 СписТип=СоздатьОбъект("ТаблицаЗначений"); 
 ВремТЗ.Выгрузить(СписТип); 
 СписТип.Свернуть("ТипТовара","Количество");
 СписТип.ВыбратьСтроку();
 ВремТЗ2=СоздатьОбъект("ТаблицаЗначений");  
 
 
 ВремТЗ.Выгрузить(ВремТЗ2); 
 ВремТЗ2.Свернуть("СетеваяТочка ,ДатаДк","Количество,КоличествоВ");  
 ВыбТип="Общий";
 ВыводИнфы(ВремТЗ2);
 СписТип.ВыбратьСтроки();
 Пока  СписТип.ПолучитьСтроку()=1 Цикл 
           ВремТЗ2.УдалитьСтроки();
           ВремТЗ.ВыбратьСтроки();
         Пока ВремТЗ.ПолучитьСтроку()=1 Цикл
               Если  ВремТЗ.ТипТовара=СписТип.ТипТовара Тогда
                        ВремТЗ2.НоваяСтрока();
                        ВремТЗ2.СетеваяТочка =ВремТЗ.СетеваяТочка; 
                        ВремТЗ2.ДатаДк =ВремТЗ.ДатаДк; 
                        ВремТЗ2.Количество= ВремТЗ.Количество;
                        ВремТЗ2.КоличествоВ =ВремТЗ.КоличествоВ;
               КонецЕсли;
        КонецЦикла;  
      ВыбТип=СписТип.ТипТовара;    
     ВыводИнфы(ВремТЗ2);    
КонецЦикла; 
 

КонецПроцедуры    
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Процедура ВыводИнфы(ВремТЗ1)  
 СписДатаДк=СоздатьОбъект("ТаблицаЗначений"); 
 СписСт=СоздатьОбъект("ТаблицаЗначений");  
 ВремТЗ1.Выгрузить(СписДатаДк); 
 ВремТЗ1.Выгрузить(СписСт); 
 
 
 СписДатаДк.Свернуть("ДатаДк","Количество");  
 СписСт.Свернуть("СетеваяТочка","Количество"); 
 
 ТВ=СоздатьОбъект("ТаблицаЗначений");
 ТВ.НоваяКолонка("СетеваяТочка");  
 ТВ.НоваяКолонка("ТипТовара");  
 СписСт.ВыбратьСтроки();
 Пока СписСт.ПолучитьСтроку()=1 Цикл
     ТВ.НоваяСтрока();
     ТВ.СетеваяТочка=СписСт.СетеваяТочка;
КонецЦикла;  
Для i=1 По  СписДатаДк.КоличествоСтрок() Цикл  
       ТВ.НоваяКолонка("_"+СокрЛП(Строка(i*2)),"Число");
     ТВ.НоваяКолонка("_"+СокрЛП(Строка(i*2+1)),"Число");  
КонецЦикла;       
ТВ.НоваяКолонка("ВсОт","Число");
ТВ.НоваяКолонка("ВсВз","Число");
ТВ.НоваяКолонка("Прод","Число");
ТВ.НоваяКолонка("Проц","Число"); 
ТВ.НоваяКолонка("КолПост","Число"); 
ТВ.НоваяКолонка("КолВоз","Числ
   mihalich979
 
39 - 09.12.20 - 15:56
ТВ.НоваяКолонка("СредПос","Число");

 ВремТЗ1.ВыбратьСтроки(); 
 Пока   ВремТЗ1.ПолучитьСтроку()=1 Цикл 
     _стр="";
     If   СписСт.НайтиЗначение(ВремТЗ1.СетеваяТочка,_стр, "СетеваяТочка")=1 Then 
            _кол="";
              If СписДатаДк.НайтиЗначение(ВремТЗ1.ДатаДк,_кол, "ДатаДк")=1 Then  
              _кол1="_"+СокрЛП(Строка(_кол*2));
              _кол2="_"+СокрЛП(Строка(_кол*2+1));
               ТВ.УстановитьЗначение(_стр,_кол1,ВремТЗ1.Количество); 
               ТВ.УстановитьЗначение(_стр,_кол2,ВремТЗ1.КоличествоВ); 
              EndIf;    
     EndIf;                 
КонецЦикла;           
           ТВ.ВыбратьСтроки();
           Пока ТВ.ПолучитьСтроку()=1 Цикл 
                     ВсОт=0;  ВсВз=0; Прод=0; Проц=0;  КолПост=0; КолВоз=0; СредПос=0;
                     КолКл=ТВ.КоличествоКолонок()-7;
                     Для i=3 По КолКл Цикл  
                         зн=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,i);   
                         If зн>0 Then
                           If (i/2)=Цел(i/2) Then
                               ВсВз=ВсВз+зн; 
                               КолВоз=КолВоз+1;
                           Else
                               ВсОт=ВсОт+зн;
                               КолПост=КолПост+1;
                           EndIf; 
                          EndIf;   
                   КонецЦикла;    
                   Прод=ВсОт-ВсВз; 
                   Прод=?(Прод<0,0,Прод);
                   Проц=ПроценВозврата(ВсОт,ВсВз);
                   If  КолПост>0 Then  
                       СредПос=Окр(ВсОт/КолПост,0);    
                   EndIf;   
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"ВсОт",ВсОт); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"ВсВз",ВсВз); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"Прод",Прод); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"Проц",Проц); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"КолПост",КолПост); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"КолВоз",КолВоз); 
                   ТВ.УстановитьЗначение(ТВ.НОмерСтроки,"СредПос",СредПос); 
                   
           КонецЦикла;  
     Таб.ВывестиСекцию("1");           
     Таб.ВывестиСекцию("2|в01");  
     СписДатаДк.ВыбратьСтроки();  
If ВесьПериод=0 Then      
     Пока СписДатаДк.ПолучитьСтроку()=1 Цикл
           Дата01=СписДатаДк.ДатаДк;
          Таб.ПрисоединитьСекцию("202");   
     КонецЦикла;  
EndIf;
          Таб.ПрисоединитьСекцию("203");   
          Таб.ПрисоединитьСекцию("204");  
     
          
          ТВ.ВыбратьСтроки();
           Пока ТВ.ПолучитьСтроку()=1 Цикл 
                  Ном=ТВ.НомерСтроки;
                  Название=ТВ.СетеваяТочка;
                  
                  КолКл=ТВ.КоличествоКолонок()-7;     
                  Проц= ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+4);   
                  Если  Проц<11 Тогда 
                               Сек="3";
                  Иначе  
                             Сек="3а";
                  КонецЕсли;
                  Таб.ВывестиСекцию(Сек+"|в01"); 
     If ВесьПериод=0 Then                  
                     Для i=3 По КолКл Цикл 
                        зн=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,i);   
                     
                           If (i/2)=Цел(i/2) Then
                               Возв=зн;
                               Таб.ПрисоединитьСекцию(Сек+"|в02");  
                           Else
                               Отгр=зн;
                           EndIf; 
                    КонецЦикла;   
        EndIf;               
                     ВсОтгр=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+1);   
                     ВсВоз=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+2);       
                     ВсПрод=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+3);   
                   
                     Таб.ПрисоединитьСекцию(Сек+"|в03");     
          
               
                     КоличествоПоставок= ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+5);   
                     КоличествоВозвратов=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+6);   
                     СредняяПоставка=ТВ.ПолучитьЗначение(ТВ.НОмерСтроки,КолКл+7); 
                      Таб.ПрисоединитьСекцию(Сек+"|в04");  
               КонецЦикла;         
                     ПосдлСтр=ТВ.КоличествоСтрок();
                      ИтВсВоз=ТВ.Итог("ВсВз");   
                      ИтВсОтгр=ТВ.Итог("ВсОт"); 
                      ИтВсПрод=ТВ.Итог("Прод");  
                      ИтПроц=ПроценВозврата(ИтВсОтгр,ИтВсВоз);  
                      ВсегоКоличествоПоставок=ТВ.Итог("КолПост");  
                      ВсегоКоличествоВозвратов=ТВ.Итог("КолВоз"); 
                      
                      Если  ИтПроц<11 Тогда 
                               Сек="4";
                      Иначе  
                             Сек="4а";
                         КонецЕсли;
                          Таб.ВывестиСекцию(Сек+"|в01"); 
     If ВесьПериод=0 Then                          
                       Для i=3 По КолКл Цикл 
                        зн=ТВ.Итог(i);                        
                           If (i/2)=Цел(i/2) Then
                               ИтВозв=зн;
                               Таб.ПрисоединитьСекцию(Сек+"|в02");  
                           Else
                               ИтОтгр=зн;
                           EndIf; 
                    КонецЦикла;  
       EndIf;                
                    
                      Таб.ПрисоединитьСекцию(Сек+"|в03");     
                         Таб.ПрисоединитьСекцию(Сек+"|в04");     
        Таб.ПараметрыСтраницы(2,,,5,5,5,5,0,0,1,,);    
      Таб.Опции(0,0,6,2,);
      Таб.Показать();      
           
 КонецПроцедуры    
          
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   mihalich979
 
40 - 09.12.20 - 15:57
вот весь модуль
   ДенисЧ
 
41 - 09.12.20 - 15:58
Так и сказал бы сразу, что у тебя прямые запросы.
В файловой и серверной они по-разному пишутся. И так просто, выгрузкой они не переносятся
   mihalich979
 
42 - 09.12.20 - 16:00
(41) а-хахах

я и не знал, а так бы сразу сказал.

можете подсказать что где поправить ? или тут дофига переписывать?
   ДенисЧ
 
43 - 09.12.20 - 16:00
Вот тут пас. Я прямые запросы в файловой не использовал
   mihalich979
 
44 - 09.12.20 - 16:02
(43) вердикт?

обратно Windows server 2003 + MSSQL2000 ?
   ДенисЧ
 
45 - 09.12.20 - 16:03
(44) Можно рискнуть и поискать того, кто такое делал... Тут такие есть... МОжет, проявятся.
   mihalich979
 
46 - 09.12.20 - 16:06
(45) это 100% нет даже 10000%

там какая-то плохая ситуация случилась, плохо расстались.
ушел никому ничего не передав и не рассказав.
и сим-карту выкинул.
   ДенисЧ
 
47 - 09.12.20 - 16:14
(46) Я имею в виду не автора. А людей, которые работали с прямыми запросами в 77.
Такие точно есть ))
   Mihenius
 
48 - 09.12.20 - 16:21
По памяти нужно исправить работу с журналом, хранением дат, пометкой удаления но во всех местах где это встречается
Когда-то давным давно что-то такое делал )

Если ФС.СуществуетФайл(КаталогИБ()+"1cv7.dds")=1 Тогда//скуль

    ЭтоСКЛ=1;
ИначеЕсли ФС.СуществуетФайл(КаталогИБ()+"1cv7.dd")=1 Тогда//дбф

    ЭтоСКЛ=0;
КонецЕсли;

Если ЭтоСКЛ=0 Тогда
    ТекстЗапроса=ТекстЗапроса+"
| WHERE    ismark='*'";
ИначеЕсли ЭтоСКЛ=0 Тогда
    ТекстЗапроса=ТекстЗапроса+"
|WITH (NOLOCK)
| WHERE    ismark=1";
КонецЕсли;

ТекстЗапроса=ТекстЗапроса+"
|    Журнал.ISMARK = "+?(ЭтоСКЛ=1,1,"'*'")+" AND
|    Журнал.Date"+?(ЭтоСКЛ=1,"_TIME_IDDOC","")+" BETWEEN :НачДата"+?(ЭтоСКЛ=1,"","~~")+" AND :КонДата~"+?(ЭтоСКЛ=1,"","~")+"";
|ORDER BY            
|    "+?(ЭтоСКЛ=1,"Журнал.DATE_TIME_IDDOC","Журнал.DATE")+"
|";


На 1cpp.ru была статья про разницу в хранении данных
   Mihenius
 
49 - 09.12.20 - 16:27
(48) Еще и идентификаторы ...
идентификатор  зависит от формата ИБ: SQL - литерал типа int; DBF - литерал типа char(4):
   Mihenius
 
50 - 09.12.20 - 16:27
Легче оставить все как есть на виртуалке, мое мнение.
Чем переписывать архивную базу.
   mihalich979
 
51 - 09.12.20 - 16:33
(50) отчетов там туева хуча.

блин. хотел избавиться от древнего сервера и древней SQL И вот те на - низя.

тут еще сложности запустить это все SQL-льное в windows 10 тоже ошибок тьма - просто при запуске 1с 77
   Builder
 
52 - 09.12.20 - 17:36
(51) SQL 2008 вам в помощь. На 7.7 работает отлично на ОдномНужномРелизе.
   mihalich979
 
53 - 10.12.20 - 08:51
(52) что за нужный релиз и где его взять?
   mihalich979
 
54 - 10.12.20 - 09:18
Еще вопрос чтобы темы не плодить.

Есть одна база 77 самописная конфа

но в ней установлен пароль на открытие конфигурации.

Есть вариант получить этот пароль?

повторю что админ предыдущий ушел с концами и без вариантов связи.
   ДенисЧ
 
55 - 10.12.20 - 09:22
(54) Паяльник и собака-ищейка.
   arsik
 
56 - 10.12.20 - 09:37
(54) Есть вариант просто снять этот пароль с конфы.
   Mikeware
 
57 - 10.12.20 - 09:37
(54) есть такие патчи...
"у нас есть такие ракеты, но мы вам о них не расскажем"© ибо "удивительное-рядом, но оно - запрещено!"©
   JeHer
 
58 - 10.12.20 - 10:00
(51) сдаётся мне, что прямые запросы могут быть не только в отчетах. Но и модулях объектов. Вертай всё взад, короче.
   Mikeware
 
59 - 10.12.20 - 10:07
(58) у него ж база архивная. объекты меняться не будут
   uno-group
 
60 - 10.12.20 - 10:09
(54) Нафига он тебе если ты в 7.7 ноль, а судя по прямым запросам там чел довольно высокого уровня работал. И без продвинутых знаний там и семерошник не каждый с ходу разберется, а тот кто разберется этот пароль и так обойдет. Что могло случиться такого, что понадобилось что-то дописывать в старых архивных базах? Отдай эту работу на аутсортинг дешевле и быстрее будет чем потратить несколько месяцев на прокачку навыков работы с 7.7.
 
 Рекламное место пустует
   Mikeware
 
61 - 10.12.20 - 10:11
(60) хоссподя. да прямые запросы - они как восьмерошные...
   uno-group
 
62 - 10.12.20 - 10:51
(61) Обычно прямыми запросами мало кто ограничивается. Там до кучи наверняка и FormEx есть и еще 2-3 ВК легко могут затисатся. Если 7.7. по жизни еще будет нужна то стоит загорячиться, а если нет то смысл на разбирательство с ней время тратить.
   Mikeware
 
63 - 10.12.20 - 10:55
(62) ну, пусть будет формекс. он от формата хранения не зависит. как и остальные компоненты.
да, поразбираться надо - но объем разборок реально невелик.
   mihalich979
 
64 - 10.12.20 - 11:11
(56) может мне кто на почту про варианты скинуть пароль отправить?
Mihalich79(мяу-гав)list.ru
   mihalich979
 
65 - 10.12.20 - 17:07
ИТОГ текущий: Оставил все на виртуалке. Отчеты работают. Все работает.

теперь только конфу раскрыть осталось.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.