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

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

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

ShIvADeSt (06-02-2008 02:31): продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=9226  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104

   

DangerousWulf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите алгоритм для поиска по двум колонкам в ТЗ  

Всего записей: 152 | Зарегистр. 16-03-2007 | Отправлено: 11:14 26-07-2007
ANTIBIOTIK2008

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеет ли надстройка или версия 1c 7.7 торговля + склад с расширеным учетом долгов ?

Всего записей: 95 | Зарегистр. 24-07-2006 | Отправлено: 12:43 26-07-2007
mr_Winter

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть проблемка:
Делаю таблицу. В свойствах формы ставлю "Использовать таблицу - Пустую".
Програмно заполняю ее, в конце даю команду - Таблица.Показать();
Все работает.
В таблице по щелчку на ячкейке ч/з процедуру "ОбработкаЯчейкиТаблицы" изменяю данные, выведенные в таблицу. В конце даю команду - Таблица.Показать();
Все работает.
В шапке есть реквизит, при изменении которого тоже нужно пересчитать данные. Пересчитываю. Опять даю команду - Таблица.Показать();
Вот здесь ругается:
 
Таблица.Показать();
: Открытие окна в данном режиме недоступно!
 
Не могу понять - в чем грабли? Может кто поможет....
Заранее благодарен

Всего записей: 316 | Зарегистр. 14-11-2006 | Отправлено: 15:15 26-07-2007
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DangerousWulf
Самый простой: перебираеш строчки ТЗ, для каждой строки проверяеш условие как для первой колонки так и для второй, через "и".
Другой способ: через команду поиска ишеш по первой колонки, при нахождении строки удовлетворяющей условию поиска, проверяем вторую колонку.
 
ANTIBIOTIK2008
Какая может быть надстройка в Торговле и складе? Эта конфа предназначена для учета склада и торговли. Все. Если тебе нужен учет по долгам - либо пиши руками все что тебе нужно (но вместе с этим будет неудобно обновлять конфу), либо выгружай в "Бухгалтерию" - а там с помощью проводок все что тебе угодно.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:34 27-07-2007
tdr1225



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

Цитата:
алгоритм для поиска по двум колонкам в ТЗ  

Создаешь доп. колонку типа "строка", заполняешь значением ""+кол1+кол2, поиск выполняешь в ней.

Всего записей: 281 | Зарегистр. 07-12-2005 | Отправлено: 14:09 27-07-2007
koss1234



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста помогите написать самому обработку или найти готовую.Ситуация:каждый месяц имеею бешеный документооборот 1С и это все надо распечатывать,тоесть открывать каждый документ,жать печать,и потом на принтер.Так вот хотелось бы выбрать вид документа,диапазон дат нажать Печать и чтоб оно печатало печатные формы документов за весь период само.

Всего записей: 29 | Зарегистр. 17-02-2007 | Отправлено: 15:10 27-07-2007
Allexandria



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
koss1234
Пакетная печать документов
http://www.strastin.narod.ru/products.htm

Всего записей: 576 | Зарегистр. 17-11-2004 | Отправлено: 15:27 27-07-2007
koss1234



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Allexandria
Там только демо версии и мне надо на украинскую конфигурацию Бух.учёт для Украины а в той обработке оно не видит печатных форм

Всего записей: 29 | Зарегистр. 17-02-2007 | Отправлено: 18:42 27-07-2007
Allexandria



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
koss1234
Цена вопроса - 350 рублей. Спросите автора - вполне возможно, что он согласится доработать.

Всего записей: 576 | Зарегистр. 17-11-2004 | Отправлено: 19:55 27-07-2007
alt76



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koss1234
если хочешь сам написать то смотри в сторону прибамбаса TurboBL (также входит в состав последних 1CPP), он позволяет делать следующее:

Код:
 
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);
Пока Док.ПолучитьДокумент() = 1 Цикл
    
    КонтекстДока=0;
    ОткрытьФорму(Док.ТекущийДокумент(),КонтекстДока);
    КонтекстДока.Печать();
    КонтекстДока.Форма.Закрыть(0);

    
КонецЦикла;
 

 
т.е. если у тебя печать каждого документа вызывается по функции Печать(), то твоя задача почти решена
ну, если нет, то тебе возможно придется написать такую функцию во всех документах (тут тебе возможно немного может помочь Inserter) и сделать так, что она выводила данные сразу на печать - без предосмотра. Вполне можно за пару часов управится

Всего записей: 1260 | Зарегистр. 03-04-2003 | Отправлено: 19:21 28-07-2007 | Исправлено: alt76, 19:26 28-07-2007
koss1234



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо!только вот теперь возникла проблема:
КонтекстДока.Печать();  
Поле агрегатного объекта не обнаружено (Печать)
 
Хотя в модуле документа есть процедура Печать ()

Всего записей: 29 | Зарегистр. 17-02-2007 | Отправлено: 20:49 28-07-2007
alt76



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

Цитата:
cмотри в сторону прибамбаса TurboBL (также входит в состав последних 1CPP), он позволяет делать следующее:

 
сам TurboBL можно взять здесь:
http://openconf.1cpp.ru/vk/turbobl/
 
не забудь внимательно всю страницу прочесть, особенно про:
ЗагрузитьВнешнююКомпоненту("turbobl.dll");

Всего записей: 1260 | Зарегистр. 03-04-2003 | Отправлено: 21:28 28-07-2007
koss1234



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скачал.В начале обработке даже прописал что б не запускалось turbobl.dll.Но что-то все равно пишет Поле агрегатного объекта не обнаружено (Печать)

Всего записей: 29 | Зарегистр. 17-02-2007 | Отправлено: 21:31 28-07-2007
alt76



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koss1234
 
пробуй так:
 

Код:
 
ЗагрузитьВнешнююКомпоненту("ПолныйПуть\turbobl.dll");
 
Док=СоздатьОбъект("Документ");  
Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);  
Пока Док.ПолучитьДокумент() = 1 Цикл  
     
    КонтекстДока=0;  
    ОткрытьФорму(Док.ТекущийДокумент(),КонтекстДока);  
    КонтекстДока.Печать();  
    КонтекстДока.Форма.Закрыть(0);  
     
КонецЦикла;  
 
 
 
ну и ваще, бог тебе в помощь
hint - в данном примере выбираются все документы за период - возможно в выборку попадает док, у которого нет в модуле формы процедуры Печать().
 
еще hint - если сделать так:

Код:
 
...
    Попытка
        КонтекстДока.Печать();     
    Исключение    
    КонецПопытки;
...
 

 
то ошибка вылетать не будет, а будет просто игнорироватся

Всего записей: 1260 | Зарегистр. 03-04-2003 | Отправлено: 21:34 28-07-2007 | Исправлено: alt76, 21:44 28-07-2007
koss1234



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо все стало нормально. А как заставить окна печатных форм закрыться после отправки их на печать????

Всего записей: 29 | Зарегистр. 17-02-2007 | Отправлено: 21:43 28-07-2007
alt76



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

Цитата:
А как заставить окна печатных форм закрыться после отправки их на печать????

использовать для печати не Таб.Показать(XXX) а Таб.Напечатать(0)
для этого надо исправлять код всех Печать() следующим образом:
завести глобальную переменную-флаг типа фПечатьДокаСразуНаПринтерБезПредосмотра
 
и в процедуре Печать всех доков сделать замену  
 
Таб.Показать(XXX);  
 
на  
 
Если фПечатьДокаСразуНаПринтерБезПредосмотра = 0
Тогда
    Таб.Показать(XXX) ;
Иначе
   Таб.Напечатать(0);
КонецЕсли
 
дерзай

Всего записей: 1260 | Зарегистр. 03-04-2003 | Отправлено: 21:51 28-07-2007 | Исправлено: alt76, 21:52 28-07-2007
Vxd2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уже что - то похожее здесь было, тем не менее.
 
Самописная конфигурация, 8.1. платформа.
 
Есть документ, у него шапка и 8 (восемь) табличных частей.
 
Все они (и шапка и табличные части) проводятся по 1 и только по 1 регистру.
 
Табличные части в произвольном порядке и в любом количестве могут быть пустыми (например ТЧ1, ТЧ5 или ТЧ2, ТЧ4 и ТЧ7 или все могут быть пустыми или все могут быть не пустыми, то есть ТабличнаяЧасть любая или любые.Количество() = 0) .
 
Как сделать оптимальное проведение по регистру шапки и табличных частей, чтобы обработка проведения происходила как можно быстрее (даже в ущерб сложности / размеру кода) , с учетом условия "пустости" табличных частей.
 
Пока такая версия:
 
Если (ТабличнаяЧасть1.Количество() <> 0) и (ТабличнаяЧасть2.Количество() <> 0) и (ТабличнаяЧасть3.Количество() <> 0) (ну и так далее до ТЧ8) Тогда
    Для Каждого ТекСтрокаТабличнаяЧасть1 Из ТабличнаяЧасть1 Цикл                   
         Для Каждого ТекСтрокаТабличнаяЧасть2 Из ТабличнаяЧасть2 Цикл
          ....
            Для Каждого ТекСтрокаТабличнаяЧасть8 Из ТабличнаяЧасть8 Цикл
                  Движение = Движения.Регистр2.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
                  Добавляем шапку и все табличные части
ИначеЕсли (ТабличнаяЧасть1.Количество() <> 0) и (ТабличнаяЧасть2.Количество() <> 0) (и так далее до ТЧ7, здесь уже ТЧ8 будет равна 0)
 
  Для Каждого ТекСтрокаТабличнаяЧасть1 Из ТабличнаяЧасть1 Цикл                   
         Для Каждого ТекСтрокаТабличнаяЧасть2 Из ТабличнаяЧасть2 Цикл
          ....
            Для Каждого ТекСтрокаТабличнаяЧасть7 Из ТабличнаяЧасть8 Цикл
                  Движение = Движения.Регистр2.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
                  Добавляем шапку и все табличные части, кроме табличной части 8
 
 

Всего записей: 1121 | Зарегистр. 14-11-2002 | Отправлено: 16:01 29-07-2007 | Исправлено: Vxd2000, 16:04 29-07-2007
ReqVieM

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

Код:
 
Процедура Сформировать()
   Таб=СоздатьОбъект("Таблица");                        
    Если КонДата>ПолучитьДатуТА() Тогда
       КонДата=ПолучитьДатуТА();
    КонецЕсли;                                  
    Док=СоздатьОбъект("Документ.ЗаявкаТР");
    Таб.ВывестиСекцию("Шапка");  
    Запрос=СоздатьОбъект("Запрос");    
    ТекстЗапроса=
    "Период С НачДата По КонДата;
    |Маршрут=Регистр.ЗаявкиТР.Маршрут;  
    |Фирма=Регистр.ЗаявкиТР.Фирма;
    |Контрагент=Регистр.ЗаявкиТР.Заказчик;
    |Док=Регистр.ЗаявкиТР.ТекущийДокумент;
             //    |Кол=Регистр.ЗаявкиТР.Количество;
    |Заявка=Регистр.ЗаявкиТР.ЗаявкаТР;    
    //Функция КолВо=НачОст(Кол);
                |Группировка Фирма;
    |Группировка Контрагент;
    |Группировка Заявка;          
    |Условие (Маршрут в ВыбМаршрут);
    |Условие (Контрагент В ВыбКонтрагент);
    |Условие (Фирма В ВыбФирма);
    |";  
    
    номер=0;
    Запрос.Выполнить(ТекстЗапроса);
    Пока Запрос.Группировка("Фирма")=1 Цикл
          Пока Запрос.Группировка("Контрагент")=1 Цикл
              Пока Запрос.Группировка("Заявка")=1 Цикл    
          //Док.ВыбратьДокументы(НачДата,КонДата);
                    //Пока Док.ПолучитьДокумент()=1  Цикл
             сообщить("ПРивет");
           //  Номер=Номер+1;
            // НомерЗаявки=Док.НомерДок;
        //КонецЦикла;
              КонецЦикла;
          КонецЦикла;  
          Таб.ВывестиСекцию("Строка");    
    КонецЦикла;  
                Таб.ТолькоПросмотр(1);
    Таб.ПараметрыСтраницы(2);
    Таб.Опции(0,0,0,0);
    Таб.Показать();
    
    
КонецПроцедуры
 

Я в этом деле не давно. Вроде все в коде понятно и должно работать, но циклы он не проходить (условие не выполняется(при 0 в бесконечный цикл)); Может кто поможет?

Всего записей: 24 | Зарегистр. 05-07-2007 | Отправлено: 13:02 30-07-2007
LexusG

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ReqVieM
 
В тексте запроса закоментированы все функции. Запрос не будет работать без функций. Получается возвращать нечего...

Всего записей: 448 | Зарегистр. 14-09-2005 | Отправлено: 13:25 30-07-2007
ANTIBIOTIK2008

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal  
 
 
Как можно учитывать отсрочки долгов, что бы без остановок отгрузок, можно было увидеть что предположим 9 дней отсрочки у клиента закончились... и пора ему звонить....

Всего записей: 95 | Зарегистр. 24-07-2006 | Отправлено: 13:38 30-07-2007
   

Страницы: 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 102 103 104

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru