8.х Строки меняются местами при печати и автозаполнении документовть

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем Nonsons, 9 ноя 2010.

  1. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Добрый день, суть проблем в следующем:
    перенесли конфигурации УправлениеРестораном в двух местах на SQL серверы. После чего появились не понятные проблемы:
    -в первом месте: при заполнении документа "поступление товаров и услуг", тип на склад, в нем автоматически должны заполняться розничные цены. Но при определенном числе позиций (меньше 8-и) розничные цены подставляются в неправильном порядке. Например цена 6-ой позиции ставится на первую строку, первой позиции на 3-ю и т.п. При этом во все проводках и печати накладной порядок правильный.
    - во втором месте: при печати документа "производство" позиции в печатной форме накладной каждый раз переставлются местами. Хотя их порядок должен соответствовать порядку в накладной.
    Грешим на SQL сервер, т.к. если выгрузить конфигурацию и установить на локальной машине - таких проблем нет.
    Поделитесь, может кто сталкивался с подобной ситуацией или хоть знает в каком направлении "копать".
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    А не пробовали выгрузить dt-шник в чистую скульную базу?
  3. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Изначально этот .dt-шник и ставился в чистую базу на sql-сервер. Можно попробовать, еще раз так сделать, если это что-то даст. Будем все пробовать. Надеялся, что у кого-то было подобное.
    Есть предположение, что может сам серер 1с, что-то путает. Думаю как его проверить. Какие есть идеи с чего начать?
  4. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Покажите процедуру заполнения цен и процедуру печати
  5. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Печать выглядит вот так:
    Код:
    Функция ПечатьНашейРасходнойНакладной(НаПринтер = Ложь)
    
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |	РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК Товар,
    |	РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    |	РеализацияТоваровУслугТовары.Количество КАК Количество,
    |	РеализацияТоваровУслугТовары.Цена КАК ЦенаСНДС,
    |	""---"" КАК НДСПроцент,
    |	""---"" КАК НДССумма,
    |	РеализацияТоваровУслугТовары.Сумма КАК СуммаБезНДС,
    |	РеализацияТоваровУслугТовары.Сумма КАК СуммаСНДС,
    |	РеализацияТоваровУслугТовары.Номенклатура
    |ИЗ
    |	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |	РеализацияТоваровУслугТовары.Ссылка = &Ссылка
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |	РеализацияТоваровУслугУслуги.Номенклатура.НаименованиеПолное,
    |	РеализацияТоваровУслугУслуги.Номенклатура.БазоваяЕдиницаИзмерения,
    |	РеализацияТоваровУслугУслуги.Количество,
    |	РеализацияТоваровУслугУслуги.Цена,
    |	""---"",
    |	""---"",
    |	РеализацияТоваровУслугУслуги.Сумма,
    |	РеализацияТоваровУслугУслуги.Сумма,
    |	NULL
    |ИЗ
    |	Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
    |ГДЕ
    |	РеализацияТоваровУслугУслуги.Ссылка = &Ссылка
    |ИТОГИ
    |	СУММА(Количество),
    |	СУММА(СуммаБезНДС),
    |	СУММА(СуммаСНДС)
    |ПО
    |	ОБЩИЕ");
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("сзНом", Ссылка.Товары.ВыгрузитьКолонку("Номенклатура"));
    
    рез = запрос.Выполнить().Выгрузить();
    
    ВыборкаОбщие = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, Дата);
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_РасходнаяНакладнаяНаша";
    
    Макет = ПолучитьМакет("РасходнаяНакладная");
    
    ОбластьШапка        = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСтрока       = Макет.ПолучитьОбласть("Строка");
    ОбластьПодвал       = Макет.ПолучитьОбласть("Подвал");
    
    ОбластьШапка.Параметры.СтрокаОрганизация = СведенияОПоставщике.ПолноеНаименование + Символы.ПС + 
    "ИНН " + СведенияОПоставщике.ИНН + "  Адрес:" + СведенияОПоставщике.ФактическийАдрес + Символы.ПС +
    "Тел.:" + СведенияОПоставщике.Телефоны;
    
    ОбластьШапка.Параметры.ТекстЗаголовка = "Расходная накладная № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Ссылка) + " от " + Формат(Дата, "ДФ=dd.MM.yyyy");											   
    ОбластьШапка.Параметры.СтрокаКому = "Кому " + Контрагент.НаименованиеПолное;
    ОбластьШапка.Параметры.СтрокаОснование      = "Основание";
    ОбластьШапка.Параметры.СтрокаДоверенность   = "Доверенность № " + ЭтотОбъект.ДоверенностьНомер + "    Через кого " + ЭтотОбъект.ДоверенностьЧерезКого;
    ОбластьШапка.Параметры.СтрокаИзготовлено    = "Изготовлено:" + Формат(Дата, "ДЛФ=DD");
    ТабДокумент.Вывести(ОбластьШапка);
    
    ТабДокумент.Вывести(ОбластьШапкаТаблицы);
    
    ВыборкаОбщие.Следующий();   
    ВыборкаТовар = ВыборкаОбщие.Выбрать();
    ОбластьПодвал.Параметры.Заполнить(ВыборкаОбщие);
    ОбластьПодвал.Параметры.СтрокаПодвала = "Всего наименований " + ВыборкаТовар.Количество()
    + ", на сумму " + ОбщегоНазначения.ФорматСумм(ВыборкаОбщие.СуммаСНДС, ВалютаДокумента) + " " +//Символы.ПС +
    ОбщегоНазначения.СформироватьСуммуПрописью(ВыборкаОбщие.СуммаСНДС, ВалютаДокумента);
    
    
    МассивВыводимыхОбластей = Новый Массив;
    
    НомерСтроки = 0;
    Пока ВыборкаТовар.Следующий() Цикл
    НомерСтроки = НомерСтроки + 1;
    ТекКК = ПолучитьТекущуюКК(ВыборкаТовар.Номенклатура,,Дата);  ///*мб
    ОбластьСтрока.Параметры.Заполнить(ВыборкаТовар);
    ОбластьСтрока.Параметры.НомерСтроки = НомерСтроки;
    
    ///*мб+++
    Если ТекКК <> Неопределено тогда
    ОбластьСтрока.Параметры.СрокРеализации = ТекКК.СрокРеализации;
    ОбластьСтрока.Параметры.ВыходБлюда = ТекКК.ВыходБлюда;
    КонецЕсли;
    //---		
    
    МассивВыводимыхОбластей.Очистить();
    МассивВыводимыхОбластей.Добавить(ОбластьСтрока);
    Если НомерСтроки = ВыборкаТовар.Количество() Тогда
    МассивВыводимыхОбластей.Добавить(ОбластьПодвал);
    КонецЕсли;		
    
    Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабДокумент.Вывести(ОбластьШапкаТаблицы);
    КонецЕсли;
    
    ТабДокумент.Вывести(ОбластьСтрока);
    
    КонецЦикла;
    
    ТабДокумент.АвтоМасштаб = Истина; ///*мб
    
    ТабДокумент.Вывести(ОбластьПодвал);
    
    Если НаПринтер Тогда   // выводим сразу 2 экземпляра
    
    МассивВыводимыхОбластей.Очистить();
    ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока");
    МассивВыводимыхОбластей.Добавить(ТабДокумент);
    
    Пока ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Цикл
    МассивВыводимыхОбластей.Добавить(ОбластьПустаяСтрока);
    МассивВыводимыхОбластей.Добавить(ОбластьПустаяСтрока);
    КонецЦикла;
    
    Для к = 1 По (МассивВыводимыхОбластей.Количество() - 3) / 2 Цикл
    ТабДокумент.Вывести(ОбластьПустаяСтрока);
    КонецЦикла;
    
    Если Не ТабДокумент.ПроверитьВывод(ТабДокумент) Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;
    ТабДокумент.Вывести(ТабДокумент);
    
    ТабДокумент.АвтоМасштаб = Истина; ///*мб
    
    ТабДокумент.Напечатать();
    
    Возврат Неопределено;
    
    КонецЕсли;	
    
    Возврат ТабДокумент
    
    КонецФункции
    
    
    С заполнением цен тут проблем нет.
    Проблемы с заполнением на другом сервере в другой базе. Давайте для начала с этим разберемся.
  6. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    У Вас в запросе нет упорядочивания, а значит упорядочивание на вкус сервера БД, причем оно может меняться. Ставьте в запрос упорядочивание по номеру строки и все будет всегда одинаково.
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1)
    Код:
    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("сзНом", Ссылка.Товары.ВыгрузитьКолонку("Номенклатура"));
    
    
    Это у вас что за параметры в запрос передаются?

    2)
    Перепишите запрос следующим образом:
    Код:
    ...
    |	РеализацияТоваровУслугТовары.Сумма КАК СуммаСНДС,
    |	РеализацияТоваровУслугТовары.Номенклатура,
    >добавить|	РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
    >добавить|	0 КАК Метка
    |ИЗ
    
    ...
    ...
    ...
    ...
    
    >добавить|	РеализацияТоваровУслугУслуги.НомерСтроки,
    >добавить|	1 КАК Метка
    |ИЗ
    
    ..
    ..
    ..
    
    >добавить|УПОРЯДОЧИТЬ ПО
    >добавить|	Метка,
    >добавить|	НомерСтроки
  8. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Itsys, shurikvz, спасибо большое. Попробую оба способа. Сначала конечно с упорядочиванием.
    Надеюсь поможет. Тогда и во второй базе попробую применить что-то подобное.
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Я написал то же самое, о чем сказал Itsys, просто с примером. :angry:
  10. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Ну меня ваш вопрос про параметры настолько в ступор ввел:) Значит вариант на исправление всего один:) значит обязан помочь!
  11. TopicStarter Overlay
    Nonsons
    Offline

    Nonsons

    Регистрация:
    9 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Проверил вчера предложенные изменения на сервере - все стало печататься отлично. Спасибо всем еще раз!
    Со второй проблемой уже разобрался сам.

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