Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка

Модерирует : ShIvADeSt

ShIvADeSt (30-10-2009 09:51): http://forum.ru-board.com/topic.cgi?forum=33&topic=10715  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема для программирования 1С!!!
Это продолжение темы, предыдущие части доступны тут


ПРОГРАММЫ  1С:Предприятие 1C - 1C: Вопросы по конфигурациям

ВАРЕЗНИК   1C:Предприятие 7.7 - 1С:Предприятие v.8.x - 1C Диск ИТС - 1С: Совместимо 8.х

Топик 1C Ebooks
ЗДЕСЬ  (обновлено 17.10.2009) - небольшая библиотечка (книги, документация, видео, утилиты) по 1С, финансам, бухучету и т.п.
Все рассортировано по версиям...


Для заблудившихся в трех соснах >>> FAQ по форуму RU.Board
 
Предыдущие темы были здесь часть 4 | часть 3 | часть 1
 
Как убить рекламу при обновлении отчетности | конфигурации (ИБ)?

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:02 03-04-2009 | Исправлено: vkramnik, 12:06 23-10-2009
MakarF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KelChechek

Цитата:
П.С.: Уже 3 разных отчета с нуля переделал. Везде курсор при обновлении перескакивает на начало таблицы.  

 
Попробуй сделать отчёт встроеным, а не внешним.
 
У внешнего отчёта правильно отрабатывается, если при выводе табличной формы закрывется вызывающая,  
т.е. при нажатии на "ОК"

Всего записей: 6 | Зарегистр. 10-07-2009 | Отправлено: 11:48 29-07-2009 | Исправлено: MakarF, 11:53 29-07-2009
KelChechek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vizlipuzli
В моем случае функция находится в глобальном модуле.  

Код:
Функция глРасшифровкаОбновить(Обновить, Расшифровка) Экспорт
    Расшифровка.Установить("Обновить", Обновить);
    Возврат Расшифровка;
КонецФункции // глРасшифровкаОбновить
 

Куда выложить отчет?

Всего записей: 182 | Зарегистр. 23-12-2004 | Отправлено: 13:03 29-07-2009 | Исправлено: KelChechek, 13:06 29-07-2009
vizlipuzli

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KelChechek
на любой обменник

Всего записей: 4038 | Зарегистр. 17-08-2005 | Отправлено: 13:09 29-07-2009
KelChechek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MakarF

Цитата:
У внешнего отчёта правильно отрабатывается, если при выводе табличной формы закрывется вызывающая,  
т.е. при нажатии на "ОК"

Пробовал сохранить встроенный стандартный отчет как внешний, там при любом раскладе курсор остается на месте.
Попробовал сделать так: сформировал печатную форму, закрыл внешний отчет. Поставил курсор в конец таблицы, нажал обновить, курсор остался на месте. Второй и последующие обновления той же печатной формы перекидывают курсор на начало отчета.

Всего записей: 182 | Зарегистр. 23-12-2004 | Отправлено: 13:14 29-07-2009
vizlipuzli

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KelChechek
так где отчет?

Всего записей: 4038 | Зарегистр. 17-08-2005 | Отправлено: 13:30 29-07-2009
KelChechek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vizlipuzli
Вот тут _http://slil.ru/27867400
Написан для специфичной конфы на основе ПУБ. Поэтому немножко код подкорректировать под себя.

Всего записей: 182 | Зарегистр. 23-12-2004 | Отправлено: 14:40 29-07-2009
Stanleygoo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Конфигурация УТ 10.3.6.8
Понадобилось в документе "Реализация товаров и услуг" в табличную часть "Услуги" добавить реквизит "Коэффициент" типа число(15,2).
Сумма должна расчитываться как:  
 

Код:
 
Сумма = СтрокаТабличнойЧасти.ПроцентК * СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
 

 
вот код процедуры расчета суммы:
 

Код:
 
 
Процедура РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект, СпособРасчета = Неопределено) Экспорт
 
    ИмяТабличнойЧасти = ОбщегоНазначения.ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти);
 
    МетаданныеДокумента = ДокументОбъект.Метаданные();
    
    //    Stanleygoo begin
    
    Если МетаданныеДокумента.Имя = "РеализацияТоваровУслуг" Тогда
        Сумма = СтрокаТабличнойЧасти.ПроцентК * СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
        СуммаСкидки = 0;
    Иначе    
        Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; // Оригинал
        СуммаСкидки = 0;                                                                    // Оригинал
    КонецЕсли;
    
    //    Stanleygoo end
    
    Если (СпособРасчета = Неопределено)
     Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.СУчетомВсехСкидок)
     Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки) Тогда
        Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентАвтоматическихСкидок", МетаданныеДокумента,
                                             ИмяТабличнойЧасти) Тогда
            СуммаСкидки = Сумма * СтрокаТабличнойЧасти.ПроцентАвтоматическихСкидок / 100;
        КонецЕсли;
 
        Если (СпособРасчета <> Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки)Тогда
            Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда
                СуммаСкидки = СуммаСкидки + (Сумма * СтрокаТабличнойЧасти.ПроцентСкидкиНаценки / 100);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
 
    СтрокаТабличнойЧасти.Сумма = Сумма - СуммаСкидки;
 
    Сообщить(СтрокаТабличнойЧасти.Сумма);  // Stanleygoo
 
КонецПроцедуры // РассчитатьСуммуТабЧасти()
 
 
 

 
Проблема в том, что если цена = 1000, количество = 1, а коэффициент = 3, то  в отладчике сумма = 3000, т.е. правильная и в табло выводиться 3000, а в строке таблицы сумма = 1000.  
 
Причем если выставить скидку = 1%, то сумма в строке таблицу = 990, в отладчике 2970...
нужно чтобы учитывался коэффициент.
Подскажите где я не прав.
 
p.s.: понимаю, что задача проще некуда, но блин, застрял. все перепробовал...
 

Всего записей: 58 | Зарегистр. 16-10-2007 | Отправлено: 14:45 29-07-2009 | Исправлено: Stanleygoo, 15:01 29-07-2009
vizlipuzli

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KelChechek
на мой взгляд, всего одна ошибка в процедуре Сформировать(), вместо:

Код:
    Если (ТипЗначенияСтр(Таб) <> "Таблица") или (Обновить = 0) Тогда
        Таб = СоздатьОбъект("Таблица");
    Иначе
         Таб.Очистить();
    КонецЕсли;
 
    Таб.ИсходнаяТаблица("Таблица");
нужно написать:
    
Код:
Если (ТипЗначенияСтр(Таб) <> "Таблица") или (Обновить = 0) Тогда
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Таблица");
    Иначе
         Таб.Очистить();
    КонецЕсли;
 
    //Таб.ИсходнаяТаблица("Таблица");

Всего записей: 4038 | Зарегистр. 17-08-2005 | Отправлено: 15:31 29-07-2009 | Исправлено: vizlipuzli, 15:32 29-07-2009
KelChechek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vizlipuzli
Последняя подсказка помогла. Спасибо.
А в стандартных отчетах (даже внешник, н.п. книга покупок) строка вот такая:
Код:
    Если (ТипЗначенияСтр(Таб) <> "Таблица") или (Обновить = 0) Тогда
        Таб = СоздатьОбъект("Таблица");
    Иначе
         Таб.Очистить();
    КонецЕсли;
      
    Если ДатаКон>= '30.05.2006' Тогда
        Таб.ИсходнаяТаблица("КнигаПокупок_283");
    Иначе
        Таб.ИсходнаяТаблица("КнигаПокупок");
    КонецЕсли;
    Таб.ИспользоватьФормат("Ч-15.2-"); // вывод в рублях с копейками
    
    ТекстВШапке = "Приложение N 2
                  |к Правилам ведения журналов учета полученных и выставленных счетов-фактур,
                  |книг покупок и книг продаж при расчетах по налогу на добавленную стоимость";
                  
    Таб.ВывестиСекцию("Кнопки");
...
 

и все правильно работает. Не понимаю.

Всего записей: 182 | Зарегистр. 23-12-2004 | Отправлено: 16:02 29-07-2009
vizlipuzli

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KelChechek

Цитата:
и все правильно работает

А у меня - нет вы наверно ошиблись, проверьте еще раз. Я сохранил "Отчет."КнигаПокупок" как внешний - и курсор при обновлении перескакивает в левый верхний угол, а если в этом внешнем отчете код изменить на такой:

Код:
    Если (ТипЗначенияСтр(Таб) <> "Таблица") или (Обновить = 0) Тогда  
        Таб = СоздатьОбъект("Таблица");  
       Если ДатаКон>= '30.05.2006' Тогда  
            Таб.ИсходнаяТаблица("КнигаПокупок_283");  
        Иначе  
            Таб.ИсходнаяТаблица("КнигаПокупок");  
        КонецЕсли;

    Иначе  
         Таб.Очистить();  
    КонецЕсли;  
       
    Таб.ИспользоватьФормат("Ч-15.2-"); // вывод в рублях с копейками  
     
    ТекстВШапке = "Приложение N 2  
                  |к Правилам ведения журналов учета полученных и выставленных счетов-фактур,  
                  |книг покупок и книг продаж при расчетах по налогу на добавленную стоимость";  
                   
    Таб.ВывестиСекцию("Кнопки");  
...
то курсор не перескакивает Думаю это связано с разным обращением к памяти самой платформы (у меня 7.70.027) 1С для внешних и внутренних отчетов.

Всего записей: 4038 | Зарегистр. 17-08-2005 | Отправлено: 05:12 30-07-2009 | Исправлено: vizlipuzli, 05:44 30-07-2009
dimawar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, как можно объявить переменную(или сделать ее такой), чтобы при ее изменении в Диалоговом окне не выдавалось сообщение о сохранении изменений?
Конфигурация Торговля и Склад, версия 7.7.
 
При печате копии чека (ЧекККМ), необходимо делать печать из 2 форм. Я создал в конфигураторе еще одну таблицу (Документы-ЧекККМ) и назвал ее "Таблица1".
В диалоговое окно я поставил CheckBox (перемен. ВыбЧек), и в модуле написал следующий код:

Код:
 
Если ВыбЧек = 1 Тогда
      ПечТаблица.ИсходнаяТаблица("Таблица1");
  Иначе  
      ПечТаблица.ИсходнаяТаблица("Таблица");
КонецЕсли;
 

Все работает, но не устраивает одно, что при закрытии диалогового окна(после изменения значения переменной ВыбЧек), предлагается провести чек занаво, т.к. было изменение.
Как можно обойти ситуацию, чтобы эта переменная не влияла на изменение документа?

Всего записей: 25 | Зарегистр. 22-10-2008 | Отправлено: 08:09 30-07-2009 | Исправлено: dimawar, 08:13 30-07-2009
ZanderZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimawar
у фомы есть метод Закрыть() читай СП

Всего записей: 672 | Зарегистр. 19-05-2006 | Отправлено: 08:22 30-07-2009
Akam1



Комса
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dimawar
По-моему надо у чека Модифицированность установить в Ложь.

----------
В правильно поставленном вопросе всегда содержится 50% ответа
Все будет так, как должно быть. Даже если будет иначе.

Всего записей: 26360 | Зарегистр. 20-04-2006 | Отправлено: 08:45 30-07-2009
dimawar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZanderZ а как мне к этому привязать изменение только одной переменной? если другие данные меняются, то должно быть обязательно Запрос на сохранение
 
 
Добавлено:
Akam1
каким образом?
не совсем понятно что это означает

Всего записей: 25 | Зарегистр. 22-10-2008 | Отправлено: 08:46 30-07-2009
MakarF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimawar
 

Цитата:
При печате копии чека (ЧекККМ), необходимо делать печать из 2 форм

 
А не проще ли сделать внешнюю печатную форму, или дополнительную внутреннию, и выбирать по кнопочке со стрелкой рядом с кнопкой "Печать"

Всего записей: 6 | Зарегистр. 10-07-2009 | Отправлено: 09:03 30-07-2009
dimawar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MakarF
попытался сделать внешнюю печатную форму, слишком много времени убил и ничего не получилось
А как можно сделать внутренню, чтобы выбирать по стрелочке рядом с кнопкой "Печать" ?

Всего записей: 25 | Зарегистр. 22-10-2008 | Отправлено: 09:07 30-07-2009
Akam1



Комса
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dimawar
Есть метод модуля формы документа
Цитата:
Модифицированность()
Modify()
Синтаксис:
Модифицированность()
Назначение:
Возвращает признак изменения реквизитов текущей формы документа:
  1 - если реквизиты текущей формы документа были изменены, 0 - иначе.
Замечание:
Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте.
Найдите в какой момент он становится равным 1 и принудительно ставьте его в 0.
Вот как-то так.
 
MakarF
Видимо, "мы не ищем легких путей".


----------
В правильно поставленном вопросе всегда содержится 50% ответа
Все будет так, как должно быть. Даже если будет иначе.

Всего записей: 26360 | Зарегистр. 20-04-2006 | Отправлено: 09:07 30-07-2009 | Исправлено: Akam1, 09:09 30-07-2009
dimawar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Akam1
вот тот момент, когда он становится равным 1 именно от CheckBoxa найти у меня не получилось.

Всего записей: 25 | Зарегистр. 22-10-2008 | Отправлено: 09:10 30-07-2009
Akam1



Комса
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dimawar
Хм.. как сложно и неудобно в этой 7-ке, я уже и забыл.
На чекбоксе в Свойствах, Дополнительно, установите формулу ПриИзмененииВыбЧек() и в ней посмотрите. Вы же получается при установке флажка меняете значение ВыбЧек, вот Вам сразу Модифицированность в 1 и становится. Попробуйте сделать ВыбЧек внутренней переменной модуля формы и тогда он не будет влиять на Модифицированность.

----------
В правильно поставленном вопросе всегда содержится 50% ответа
Все будет так, как должно быть. Даже если будет иначе.

Всего записей: 26360 | Зарегистр. 20-04-2006 | Отправлено: 09:22 30-07-2009
MakarF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dimawar
 
В процедуре Печать:

Код:
 
Процедура Печать(СразуНаПринтер = 0,КолЭкз = 1, НомерТекФормы = 1)
    Перем ПечТаблица, ВысотаШапки;
    
    ПечТаблица    = СоздатьОбъект("Таблица");
    Если НомерТекФормы = 2 Тогда
        ПечТаблица.ИсходнаяТаблица("Таблица1");
    Иначе
        ПечТаблица.ИсходнаяТаблица("Таблица");
    КонецЕсли;

 

 
В процедуре ПоКнопкеПечать:

Код:
 
    Если НомерТекущейФормы = 1  Тогда
        Печать(СразуНаПринтер, КолЭкз);
    ИначеЕсли НомерТекущейФормы = 2  Тогда
        Печать(СразуНаПринтер, КолЭкз, НомерТекущейФормы);

    Иначе
 

 
В теле модуля (после всех процедур):

Код:
 
// добавим информацию о встроенной форме
ТаблицаПечФорм.НоваяСтрока();
ТаблицаПечФорм.Название     = "Печатная форма товарного чека";
ТаблицаПечФорм.Кнопка       = "Чек";
// добавим информацию о ещё одной встроенной форме
ТаблицаПечФорм.НоваяСтрока();
ТаблицаПечФорм.Название     = "Печатная форма товарного чека ХХХ";
ТаблицаПечФорм.Кнопка       = "Чек ХХХ";

 

 
Вроде бы всё.
 
Akam1
Не так страшен чёрт, как его малюют

Всего записей: 6 | Зарегистр. 10-07-2009 | Отправлено: 09:42 30-07-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка
ShIvADeSt (30-10-2009 09:51): http://forum.ru-board.com/topic.cgi?forum=33&topic=10715


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru