7.7 Перенос 1С 7.7 на sql server 2005 + журнал транзакций

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем alex812, 29 июн 2010.

  1. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Всем привет! Столкнулся с такой проблемой, перенёс 1с 7.7 на sql server 2005, BkEnd.dll пропатчил, Сделал выгрузку dbf-ной базы, затем создал sql-ную базу, и загрузил в нее выгрузку из базы dbf. Вначале выгрузки комп сказал:
    Внимание!
    При выполнении загрузки данных не поддерживается целостность журнала транзакций.
    Рекомендуется выполнить дамп всей базы данных или журнала транзакций!
    А в конце выгрузки появилось сообщение :
    Внимание!
    При выполнении загрузки базы данных был очищен журнал транзакций.
    Для обеспечения возможности восстановления содержимого базы данных,
    следует выполнить дамп базы данных и журнала транзакций!

    Это бы все ничего, но после того как я перевел базу из dbf на sql некоторые важное обработки перестали работать,т.е они просто не видят введенной в 1с информации.
    Кто может подсказать как исправить ситуацию с обработками? Всем заранее большое спасибо.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    То что работает в DBF не всегда рабтотает в SQL - это нормально. Особенно это касается ЗиК. Показывайте ваши запросы....
  3. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    А может там быть не в обработке дело?
    А обработка такая:

    Код:
    //*******************************************
    // Процедура генерации запроса Сформировать.
    //
    Процедура Сформировать()
    Перем Запрос, Запрос1, ТекстЗапроса1, ТекстЗапроса;  
    табл = СоздатьОбъект("ТаблицаЗначений");
    табл.НоваяКолонка("КодМатериала");
    табл.НоваяКолонка("Приходный");
    табл.НоваяКолонка("КолвоРасхода");
    табл.НоваяКолонка("КолвоПрихода");
    табл.НоваяКолонка("НДСПрихода");
    табл.НоваяКолонка("НДССторно");
    табл.НоваяКолонка("Сумма");
    табл.НоваяКолонка("Док");
    табл1 = СоздатьОбъект("ТаблицаЗначений");
    табл1.НоваяКолонка("КодМатериала");
    табл1.НоваяКолонка("Приходный");
    табл1.НоваяКолонка("КолвоРасхода");
    табл1.НоваяКолонка("КолвоПрихода");
    табл1.НоваяКолонка("НДСПрихода");
    табл1.НоваяКолонка("НДССторно");
    табл.НоваяКолонка("Сумма");
    табл1.НоваяКолонка("Док");
    //Создание объекта типа Запрос     
    Сч = СчетПоКоду("20");
    Запрос = СоздатьОбъект("Запрос");
    Запрос1 = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    //	|ОбрабатыватьДокументы все;
    |Обрабатывать НеПомеченныеНаУдаление;
    |МестоХранения = Документ.ТребованиеНакладная.МестоХранения;
    //,Документ.Возврат.МестаХранения;
    |СчетЗатрат = Документ.ТребованиеНакладная.СчетЗатрат;
    |НомерДок = Документ.ТребованиеНакладная.НомерДок,Документ.Возврат.НомерДок;
    |Док = Документ.ТребованиеНакладная.ТекущийДокумент,Документ.Возврат.ТекущийДокумент;
    |Склад = Документ.ТребованиеНакладная.МестоХранения.Наименование;
    |ДатаДок = Документ.ТребованиеНакладная.ДатаДок;
    |Код = Документ.ТребованиеНакладная.Материал.Код,Документ.Возврат.Материалы.Код;  
    |Требование = Документ.ТребованиеНакладная.Требование;
    //,Документ.Возврат.Требование;  
    |Субконто = Документ.ТребованиеНакладная.Субконто1;
    //,Документ.Возврат.Номенклатура,Документ.Корректировка.Номенклатура;
    |Наименование = Документ.ТребованиеНакладная.Материал.Наименование,Документ.Возврат.Материалы.Наименование; 
    |Мат = Документ.ТребованиеНакладная.Материал,Документ.Возврат.Материалы; 
    |цена = Документ.ТребованиеНакладная.Цена,Документ.Возврат.Материалы.Цена; 
    |Количество = Документ.ТребованиеНакладная.КоличествоОтпущено,Документ.Возврат.Количество;
    |Сумма = Документ.ТребованиеНакладная.Сумма,Документ.Возврат.Сумма; 
    |Группировка МестоХранения упорядочить по МестоХранения.Код;
    |Группировка НомерДок;
    |Группировка Код;
    |Группировка СтрокаДокумента;
    |Условие(СчетЗатрат = Сч);
    //|Условие(МестоХранения = ВыбМестоХранения);
    //|Условие(Субконто = ВыбСубконто);
    |"//}}ЗАПРОС
    ;
    Если ВыбМестоХранения.Выбран() = 1 Тогда
    ТекстЗапроса = ТекстЗапроса +
    "Условие(МестоХранения = ВыбМестоХранения);
    |"
    ;  
    //		Сообщить(ТекстЗапроса);
    КонецЕсли;
    Если ВыбСубКонто.Выбран() = 1 Тогда
    ТекстЗапроса = ТекстЗапроса +
    "Условие(СубКонто = ВыбСубКонто);
    |"
    ;
    КонецЕсли;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    Сумма0 = 0;
    // Подготовка к заполнению выходных форм данными запроса
    //	Таб = СоздатьОбъект("Таблица");
    //	Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    //	Таб = СоздатьОбъект("Таблица");
    //	Таб.ИсходнаяТаблица("Сформировать");
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    ВыбНач1 = Дата(2004, 01, 01);
    ВыбКон1 = ВыбКонПериода;//ТекущаяДата();//Дата(2004, 01, 01);
    Пока Запрос.Группировка(1) = 1 Цикл 
    нр = 0;
    // Заполнение полей МестоХранения
    Таб.ВывестиСекцию("МестоХранения");
    Пока Запрос.Группировка(2) = 1 Цикл
    Пока Запрос.Группировка(3) = 1 Цикл  
    Пока Запрос.Группировка(4) = 1 Цикл  
    нр = нр + 1;                             
    нрдок = "док" + строка(нр);
    нр1 = табл.НоваяСтрока(); 
    табл.УстановитьЗначение(нр1, "КодМатериала", Запрос.Код);
    //			табл.НоваяКолонка("Приходный");
    табл.УстановитьЗначение(нр1, "КолвоРасхода", Запрос.Количество);   
    //			если приход в прошлом году
    табл.УстановитьЗначение(нр1, "Док", ПолучитьПустоеЗначение("Документ.ПоступлениеМатериалов"));
    табл.УстановитьЗначение(нр1, "Приходный", нрдок);
    табл.УстановитьЗначение(нр1, "КолвоПрихода", 0);
    табл.УстановитьЗначение(нр1, "НДСПрихода", 0);    
    табл.УстановитьЗначение(нр1, "НДССторно", 0);
    табл.УстановитьЗначение(нр1, "Сумма", 0);
    //			если приход в прошлом году			
    // Заполнение полей НомерДок
    //			Таб.ВывестиСекцию("НомерДок");
    Сумма0 = Сумма0 + Запрос.Сумма; 
    кодд = Запрос.Код; 
    МестоХр1 = Запрос.МестоХранения; 
    счет0 = СчетПоКоду("20");
    Сообщить(кодд);
    Сообщить(МестоХр1);
    ТекстЗапроса1 = 
    "//{{ЗАПРОС(прих)
    |Период с ВыбНач1 по ВыбКон1;
    |Док = Документ.ПоступлениеМатериалов.ТекущийДокумент;
    |Контрагент = Документ.ПоступлениеМатериалов.Контрагент;
    |МестоХранения = Документ.ПоступлениеМатериалов.МестоХранения;
    |ВидПоступления = Документ.ПоступлениеМатериалов.ВидПоступления;
    |Требование = Документ.ПоступлениеМатериалов.Требование;
    |Код = Документ.ПоступлениеМатериалов.Материал.Код;
    |НДС = Документ.ПоступлениеМатериалов.НДС;
    |сумма = Документ.ПоступлениеМатериалов.Сумма;
    |Количество = Документ.ПоступлениеМатериалов.Количество;
    |Группировка Код;
    |Группировка СтрокаДокумента;   
    |Условие(ВидПоступления = 0);
    |Условие(Код = Кодд);
    |Условие(МестоХранения = МестоХр1);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос1.Выполнить(ТекстЗапроса1) = 0 Тогда
    Возврат;
    КонецЕсли;
    Пока Запрос1.Группировка(1) = 1 Цикл
    Пока Запрос1.Группировка(2) = 1 Цикл  
    Если Запрос1.Сумма <> 0 Тогда
    Сообщить("Внутри");
    Сообщить(Запрос1.Сумма);
    Сообщить("*****" + строка(Запрос1.Док) + "  №" + Запрос1.Требование);
    табл.УстановитьЗначение(нр1, "Док", Запрос1.Док);
    табл.УстановитьЗначение(нр1, "Приходный", Запрос1.Требование);
    табл.УстановитьЗначение(нр1, "КолвоПрихода", Запрос1.Количество);
    табл.УстановитьЗначение(нр1, "НДСПрихода", Запрос1.НДС);    
    табл.УстановитьЗначение(нр1, "НДССторно", Запрос1.НДС*Запрос.Количество/Запрос1.Количество);
    табл.УстановитьЗначение(нр1, "Сумма", Запрос1.Сумма*Запрос.Количество/Запрос1.Количество);
    КонецЕсли; // Запрос1.Сумма <> 0
    КонецЦикла;
    КонецЦикла;
    прих = табл.ПолучитьЗначение(нр1, "Приходный");
    кол1 = табл.ПолучитьЗначение(нр1, "КолвоРасхода");
    кол2 = табл.ПолучитьЗначение(нр1, "КолвоПрихода");
    НДС = табл.ПолучитьЗначение(нр1, "НДСПрихода");
    НДССтр = табл.ПолучитьЗначение(нр1, "НДССторно"); 
    сообщить(НДССтр);
    //			таб.ВывестиСекцию("сторно"); 
    //	возврат;
    КонецЦикла;
    КонецЦикла;
    КонецЦикла;
    КонецЦикла;
    Сообщить("Проверка первой таблицы");
    табл.ВыбратьСтроки();
    Пока табл.ПолучитьСтроку() = 1 Цикл 
    Сообщить("**" + табл.Док + "!! №" + табл.Приходный);  
    Сообщить(табл.Сумма);
    КонецЦикла;               
    Сообщить("Конец первой проверки");
    табл1.Загрузить(табл);
    табл1.Свернуть("Док","Приходный,НДСПрихода,НДССторно,Сумма");   
    //	табл1.Свернуть("Док","НДСПрихода,НДССторно,Сумма");   
    // Вывод заполненной формы   
    //	Таб.ВывестиСекцию("Итого");                           
    таб.ВывестиСекцию("Всего");
    Сообщить("Проверка таблицы");
    табл1.ВыбратьСтроки();
    Пока табл1.ПолучитьСтроку() = 1 Цикл 
    Сообщить("**" + табл1.Док + "!!");  
    Сообщить(табл1.Сумма);
    КонецЦикла;               
    Сообщить("Конец проверки");
    табл1.ВыбратьСтроки();
    Пока табл1.ПолучитьСтроку() = 1 Цикл 
    Сообщить("Док=" + строка(табл1.Док)); 
    Если ПустоеЗначение(табл1.Док) = 1 Тогда
    прих = "старое";		
    Иначе    
    прих = "№ " + строка(СокрЛП(табл1.Док.Требование)) + " от " + строка(табл1.Док.ДатаДок); 
    КонецЕсли; // ПустоеЗначение(табл1.Док) = 1
    Поставщик = табл1.Док.Контрагент;
    сф = табл1.Док.ДатаНомерСчетаФактуры;  
    дог = табл1.Док.Договор;
    Сообщить(прих);
    НДС = табл1.НДСПрихода;
    НДССтр = табл1.НДССторно;
    суммаС = табл1.Сумма;
    таб.ВывестиСекцию("Всего1");
    КонецЦикла; 
    стрНДС = табл1.Итог("НДССторно");
    стрСумма = табл1.Итог("Сумма");
    таб.ВыВестиСекцию("ИтогСтр");
    НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ПолноеИмяПользователя())=0,"  Пользователь: "+ПолноеИмяПользователя(),"");
    таб.ПараметрыСтраницы(2,,,,,,,,,1,,);	
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры  
    
    //*******************************************
    // Процедура генерации запроса прих.
    //
    Процедура прих()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(прих)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Документ.ПоступлениеМатериалов.Контрагент;
    |МестоХранения = Документ.ПоступлениеМатериалов.МестоХранения;
    |ВидПоступления = Документ.ПоступлениеМатериалов.ВидПоступления;
    |Требование = Документ.ПоступлениеМатериалов.Требование;
    |Код = Документ.ПоступлениеМатериалов.Материал.Код;
    |НДС = Документ.ПоступлениеМатериалов.НДС;
    |Количество = Документ.ПоступлениеМатериалов.Количество;
    |Группировка Код;
    |Условие(ВидПоступления = 0);
    |Условие(Код = Код1);
    |Условие(МестоХранения = МестоХр1);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("прих");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей Код
    Таб.ВывестиСекцию("Код");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("прих", "");
    КонецПроцедуры
    
    Процедура ПриОткрытии()
    Таб = СоздатьОбъект("Таблица");	
    Таб.ИсходнаяТаблица("Сформировать");
    КонецПроцедуры
    
    
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Спасибо и на том что текст глобального модуля не попытались выложить.... На будущие - прикрепляте ert файл или модуль копируйте в текстовый файл и прикрепляйте
  5. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Я на форуме впервые, еще всех тонкостей не знаю. В следующий раз так и буду файлы выкладывать. А по этой обработке можно что сказать?
  6. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Похоже что обработка просто данных не видит в новой базе.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не совсем так. Внешне не вижу особенностей. Попробуйте выгружать результаты запростов в ТаблицуЗначений и выводить на экран (ВыбратьСтроку). Постотрим получаете ли выданные. Далее будем решать
  8. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Я конечно ужасно извиняюсь, но я не понял что я должен сделать. Можно объяснить для чайников немного попроще.
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код:
    ....
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда        
    Возврат;    
    КонецЕсли;
    
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроку();
    ...
    
    
    вот и смотрим что у нас отобразиться... Попадает вообще что-то в запрос. Если да - косяк дальше в группировках. Если пусто - будим лопатить
  10. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Я еще раз чертовски извиняюсь, как я понял мне надо вставить этот код в конец моей обработки и запустить ее?
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Судя по тексту у вас три запроса - ПОСЛЕ КАЖДОГО.
  12. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Чертовски извиняюсь за задержку с ответом!
    Написал строчку ТЗ=СоздатьОбъект в обработку. Я там только два обьекта нашел. Далее пытался выполнить эту обработку, но обработка даже не открылась, комп сказал:
    ТЗ=СоздатьОбъект<<?>>
    {C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\МОИ ДОКУМЕНТЫ\БАЗЫ НЕПТУН\MATER SQL\EXTFORMS\СТОРНО СОЗДАТЬОБЪЕКТ.ERT(78)}: Ожидается символ '('
    ТЗ=СоздатьОбъект<<?>>
    {C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\МОИ ДОКУМЕНТЫ\БАЗЫ НЕПТУН\MATER SQL\EXTFORMS\СТОРНО СОЗДАТЬОБЪЕКТ.ERT(246)}: Ожидается символ '('

    Может я не правильно что написал. Исправленную обработку прилагаю. :unsure:

    Вложения:

  13. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Не все прошлый раз прописал в обработку. Сейчас дописал после запросов
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроку();
    Запустил обработку, выдало таблицу с графами: Место хранения, Номер, Код, Строка документа. В тоблице ничего нет.
    Запустил ту же обработку в dbf-ной базе, в таблицах получил целую кучу всего.
    Похоже действительно документов поле переноса не видит. Что делать, подскажите ПЛЗ!
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно попоробовать методом исключения - по одному закомментируйте условия и смотрите на каком запрос выдаст результат
  15. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Что то ничего не получилось.
    1. Попробовал так

    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    // Запрос.Выгрузить(ТЗ);
    // ТЗ.ВыбратьСтроку();

    Выдало все по нулям.

    2.

    // ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    // ТЗ.ВыбратьСтроку();

    Обработка не открылась. Выдало следующее:
    Запрос.Выгрузить(ТЗ<<?>>);

    {C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\РАБОЧИЙ СТОЛ\СТОРНО 19\111СТОРНО СОЗДАТЬ ОТЧЕИ.ERT(79)}: Переменная не определена (ТЗ)

    3/ третий вариант

    // ТЗ=СоздатьОбъект("ТаблицаЗначений");
    // Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроку();

    Обработка не открылась, выдало
    ТЗ<<?>>.ВыбратьСтроку();

    {C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\РАБОЧИЙ СТОЛ\СТОРНО 19\111СТОРНО СОЗДАТЬ ОТЧЕИ.ERT(80)}: Переменная не определена (ТЗ)

    И запросы поочереди комментировал, все одно и то же по нулям. К сожалению.
  16. DimkaAV
    Offline

    DimkaAV

    Регистрация:
    24 июн 2010
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроки();

    Пока ТЗ.Получитьстроку() Цикл
    // тут или сообщить или брэкпоинт - на любителя
    Сообщить(ТЗ.Имя_поля);
    КонецЦикла;


    P.S. А документацию по языку чиать всетаки надо...

    И еще, хотете получать ответы - задавайте правильно вопросы. Не своими словами - как нибудь, а цитаты сообщений 1С ну или скриншоты(не всего что есть на мониторе(!) а целевого окна)
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Комментировать я вам предлагал УСЛОВИЕ в запросе, а не вывод его результата)))) Пример:
    Код:
    ...
    |Количество = Документ.ПоступлениеМатериалов.Количество;
    |Группировка Код;	
    |//Условие(ВидПоступления = 0); условие по виду поступления мы исключили
    |Условие(Код = Код1);	
    |Условие(МестоХранения = МестоХр1);
    
    
  18. TopicStarter Overlay
    alex812
    Offline

    alex812

    Регистрация:
    29 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Честно говоря, не понял что надо делать. Наверное еще не подготовлен чтобы это понять, попробую почитать литературу. Всем спасибо за помощь!!!!
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В приведенном выше примере показано как исключить из запроса одно из условий...

Поделиться этой страницей