Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.