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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
dimaxmaster

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

Цитата:
убрал из кода  Попытка и все заработало  

 
Тут может быть такое. Попытка - это обработчик исключительных ситуаций. Ты не определил тип новой колонке в таблице, соответственно, вначале он не определен. Поэтому оператор Попытка отрабатывал сразу в исключение. И еще, я заметил ты не пользуешься отладчиком, так как на вопрос какой тип переменной, ты ответил ТипЗначения() определил...Если бы все сразу смотрел в отладчике было бы сразу понятно как отрабатывается код. Юзай его, без отладчика, нельзя написать ничего стоящего в 1С, и без отладчика трудно искать ошибки. Собственно, отладчик для этого и нужен для поиска ошибок.

Всего записей: 333 | Зарегистр. 05-06-2008 | Отправлено: 10:33 28-04-2009
vizlipuzli

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newjon
 
По свойствам, конечно, не определить. Для этого есть партии и партионный учет. Вот с помощью этого механизма легко отслеживается поступление/перемещение/продажа номенклатуры.
 
 
 

Всего записей: 4038 | Зарегистр. 17-08-2005 | Отправлено: 11:01 28-04-2009 | Исправлено: vizlipuzli, 11:02 28-04-2009
zpz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите пожалуйста... С помощью обработки "обмен документов" надо перенести расходные накладные и приходные из 1С77 Общая бухгалтерия в 1С77 УСН. Не получается этого сделать, документ "расходная накладная не существует" в УСН...Что делать

Всего записей: 24 | Зарегистр. 30-01-2009 | Отправлено: 11:43 28-04-2009
ReqVieM

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
An4eus
Вроде так (Глобальный модуль):

Код:
Процедура ОткрытьНаИзменение(Конт,ТекДок) Экспорт            
    Конт.Форма.толькоПросмотр(1);  
    Конт.форма.Закрыть(0);
    ТекДок.СделатьНеПроведенным();          
    Форм.добавитьЗначение(ТекДок);  
КонецПроцедуры  

 
Хех, пока писал подумал что можно еще и так сделать:

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

Поправил это должно работать, только обидно для меня это оказалось не актуально.  

Всего записей: 24 | Зарегистр. 05-07-2007 | Отправлено: 12:19 28-04-2009 | Исправлено: ReqVieM, 21:03 28-04-2009
TrustyM

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2All: 1с 8.1.13.41, конфигурация УПП 1.2.22.3
Проблема - выдает следующую ошибку при нажатии на кнопку "Заполнить" в документе "Формирование записей книги продаж":
 
"{Документ.ФормированиеЗаписейКнигиПродаж(1074)}: Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения
            Отбор.СчетФактура.Значение = СтрокаСФ.СчетФактура;
по причине:
Неверный тип значения"
 
Ошибка была замечена после обновления с предыдушего релиза УПП. Кто знает в чем проблема и как ее решить? Очень нужно.....

Всего записей: 420 | Зарегистр. 02-08-2006 | Отправлено: 13:12 28-04-2009
DARKDEAD

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zpz
В виде РН, нет, а вот Документ «Реализация», присутствует

Всего записей: 249 | Зарегистр. 04-02-2008 | Отправлено: 14:37 28-04-2009
St01en

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TrustyM
Что непонятно?
Цитата:
Неверный тип значения
Значит СчетФактура имеет тип не СтрокаСФ. Чтобы точнее ответить - нужно видеть код, а не только сообщение об ошибке.

Всего записей: 292 | Зарегистр. 10-04-2006 | Отправлено: 17:05 28-04-2009 | Исправлено: St01en, 17:05 28-04-2009
TrustyM

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
St01en
Знал бы в чем дело, не писал сюда... Код стандартный из УПП  1.2.22.3, ничего не менялось...
Если можешь рассказать подробнее, что это значит буду очень благодарен....

Всего записей: 420 | Зарегистр. 02-08-2006 | Отправлено: 17:16 28-04-2009
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ReqVieM
Цитата:
 Журнал.НайтиДокумент(Конт.ТекущийДокумент());
у контекста нету метода ТекущийДокумент()

Код:
Процедура ОткрытьНаИзменение(Конт,ТекДок) Экспорт              
    Конт.Форма.толькоПросмотр(1);    
    Конт.форма.Закрыть(0);  
    Док = СоздатьОбъект("Документ");
    Док.НайтиДокумент(ТекДок);
    //ТекДок.СделатьНеПроведенным();
    Док.СделатьНеПроведенным();            
    Форм.добавитьЗначение(ТекДок);    
КонецПроцедуры


----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 18:56 28-04-2009
ReqVieM

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
An4eus
  Мой малый опыт, мне подсказывает что если бы у контекста не было метода текущий документ, то на этапе исполнения процедуры выдалась бы ошибка. Так что не вариант (ибо ошибки о не обноруженном методе не было).

Всего записей: 24 | Зарегистр. 05-07-2007 | Отправлено: 21:05 28-04-2009
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ReqVieM
так ты в процедуре сделай Сообщить(Кот.ТекущийДокумент())

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 22:18 28-04-2009
St01en

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

Всего записей: 292 | Зарегистр. 10-04-2006 | Отправлено: 11:26 29-04-2009 | Исправлено: St01en, 11:34 29-04-2009
egerLESHIK



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

Цитата:
Процедура ИзмЗагрДанные()
     Если АнПрКа.КоличествоСтрок()>0 Тогда
          Если Вопрос("Удалить все строки табличной части документа?","Да+Нет")="Да" Тогда
               АнПрКа.УдалитьСтроки();
          КонецЕсли;
КонецЕсли;  
ТЗЭксп.Свернуть("НомерСтр,НомерЧека,Наименование,Цена,ПризнакТМЦ,УчНалКвТМЦ,Артикул","ФактКолво");
ТЗИмпЧ.Свернуть("НомерЧека,Тип,ДатаЧека,КодЭкка,НомерСтр,Артикул,Цена,Сумма","ФактКолво");
Для сч=1 по ТЗЭксп.КоличествоСтрок() Цикл  
 
ТЗИмпЧ.ПолучитьСтрокуПоНомеру(сч);
ТЗЭксп.ПолучитьСтрокуПоНомеру(сч);
АнПрКа.НоваяСтрока();  
//заполняем строку новой таблицы
         АнПрКа.НаимЭксп=ТЗЭксп.Наименование;
         АнПрКа.АртЭксп=ТЗЭксп.Артикул;
         АнПрКа.КТЭксп=ТЗЭксп.НомерСтр;
         АнПрКа.КвоЭксп=ТЗЭксп.ФактКолво;
         АнПрКа.ЦенаЭксп=ТЗЭксп.Цена;
         АнПрКа.СуммаЭксп=ТзЭксп.ФактКолво*ТЗЭксп.Цена;
 
        АнПрКа.АртИмп=ТЗИмпЧ.Артикул;  
         АнПрКа.КТимп=ТЗИмпЧ.НомерСтр;
        АнПрКа.КвоИмп=ТЗИмпЧ.ФактКолво;
        АнПрКа.ЦенаИмп=ТЗИмпЧ.Цена;
        АнПрКа.СуммаИмп=ТЗИмпЧ.ФактКолво*ТЗИмпЧ.Цена;
 
                                                          
        АнПрКа.КвоРазн=АнПрКа.КвоЭксп-АнПрКа.КвоИмп;
        АнПрКа.СуммаРазн=АнПрКа.СуммаЭксп-АнПрКа.СуммаИмп;  
//        АнПрКа.КонтрЦена=АнПрКа.СуммаРазн/АнПрКа.КвоРазн;  
   
 
КонецЦикла;                                            
    
        АнПрКа.Сортировать("КТЭксп,НаимЭксп,АртЭксп",);    
КонецПроцедуры      
 

 
А вот что собственно выдает, если количество строк по таблице ТЗЭксп больше, чем в ТЗИмпЧ:

Цитата:
ТЗИмпЧ.ПолучитьСтрокуПоНомеру(сч);
{Обработка.ИмпортДанныхКА.Форма.Модуль(702)}: Номер за пределами значения!

 
Немного переделал код теперрь добавляет строки с пустыми значениями, однако при сортировкепустые строки выводит в самом начале перед заполнеными строками, а нужно, чтобы выводило в конце - после запоолненых строк. Добавленный код выделен полужирным шрифтом.
 

Цитата:
 
 
 
Процедура ИзмЗагрДанные()
     Если АнПрКа.КоличествоСтрок()>0 Тогда
          Если Вопрос("Удалить все строки табличной части документа?","Да+Нет")="Да" Тогда
               АнПрКа.УдалитьСтроки();
          КонецЕсли;
КонецЕсли;  
ТЗЭксп.Свернуть("НомерСтр,НомерЧека,Наименование,Цена,ПризнакТМЦ,УчНалКвТМЦ,Артикул","ФактКолво");
ТЗИмпЧ.Свернуть("НомерЧека,Тип,ДатаЧека,КодЭкка,НомерСтр,Артикул,Цена,Сумма","ФактКолво");
Для сч=1 по ТЗЭксп.КоличествоСтрок() Цикл  
 
ТЗИмпЧ.ПолучитьСтрокуПоНомеру(сч);
ТЗЭксп.ПолучитьСтрокуПоНомеру(сч);
АнПрКа.НоваяСтрока();  
//заполняем строку новой таблицы
         АнПрКа.НаимЭксп=ТЗЭксп.Наименование;
         АнПрКа.АртЭксп=ТЗЭксп.Артикул;
         АнПрКа.КТЭксп=ТЗЭксп.НомерСтр;
         АнПрКа.КвоЭксп=ТЗЭксп.ФактКолво;
         АнПрКа.ЦенаЭксп=ТЗЭксп.Цена;
         АнПрКа.СуммаЭксп=ТзЭксп.ФактКолво*ТЗЭксп.Цена;
 
        АнПрКа.АртИмп=ТЗИмпЧ.Артикул;  
         АнПрКа.КТимп=ТЗИмпЧ.НомерСтр;
        АнПрКа.КвоИмп=ТЗИмпЧ.ФактКолво;
        АнПрКа.ЦенаИмп=ТЗИмпЧ.Цена;
        АнПрКа.СуммаИмп=ТЗИмпЧ.ФактКолво*ТЗИмпЧ.Цена;
 
Е с л и   Т З И м п Ч . К о л и ч е с т в о С т р о к ( ) < Т З Э к с п . К о л и ч е с т в о С т р о к ( )   Т о г д а  
        Т З И м п Ч . Н о в а я С т р о к а ( с ч ) ;    
             А н П р К а . А р т И м п = 0 ;    
             А н П р К а . К Т и м п = 0 ;  
                  А н П р К а . К в о И м п = 0 ;  
               А н П р К а . Ц е н а И м п = 0 ;  
                     А н П р К а . С у м м а И м п = 0 ;  
  К о н е ц Е с л и ;    

 
        АнПрКа.КвоРазн=АнПрКа.КвоЭксп-АнПрКа.КвоИмп;
        АнПрКа.СуммаРазн=АнПрКа.СуммаЭксп-АнПрКа.СуммаИмп;  
//        АнПрКа.КонтрЦена=АнПрКа.СуммаРазн/АнПрКа.КвоРазн;  
   
 
КонецЦикла;                                            
    
        АнПрКа.Сортировать("КТЭксп,НаимЭксп,АртЭксп",);    
КонецПроцедуры  
       
                   
 

 

Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 14:00 29-04-2009 | Исправлено: egerLESHIK, 18:37 29-04-2009
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
egerLESHIK
Цитата:
Есть две ТЗ данные из которых сливаются в третью. Однако в одной ТЗ из двух  первых количество строк превышает чем во второй (из тех же двух)
Две ТЗ одинаковой структуры? в итоге надо "склеить" их?


----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 20:44 29-04-2009
egerLESHIK



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
An4eus
 
В том-то и дело. что склеить то я склеил, а вот на выдаче результата -  сортировкой нелады.
Все дело в том, что количество строк после сворачивания перед переносом (в общую таблицу АнПрКа) в таблице ТЗИмЧ может быть двух вариантов, либо равно количеству строк в таблице ТЗЭксп, либо меньше (больше быть не может). Поэтому если меньше, то добавляем нулевые строки, однако после сортировки нулевые строки должны быть после строк с заполненными значениями, а они лезут первыми.
То есть сейчас выдает:
НаимЭкспорт | АртЭксп | КвоЭксп | ЦенаЭксп | АртИмп | КвоИмп | ЦенаИмп
товар1          |  00011    |      2       |        40     |   0       |              |        
товар2          |  00121    |      4       |        30     |   0       |              |        
товар3          |  00016    |      6       |        20     |   0       |              |        
товар4          |  00028    |      5       |        50     | 00011  |      1      |     40
товар5          |  00029    |      2       |        15     | 00121  |      2      |     30
товар6          |  00030    |      7       |        25     | 00016  |      3      |     20
товар7          |  00025    |      5       |        50     | 00028  |      3      |     50
 
 
А должно выдавать:  
 
НаимЭкспорт | АртЭксп | КвоЭксп | ЦенаЭксп | АртИмп | КвоИмп | ЦенаИмп
товар1          |  00011    |      2       |        40     | 00011  |      1      |     40
товар2          |  00121    |      4       |        30     | 00121  |      2      |     30
товар3          |  00016    |      6       |        20     | 00016  |      3      |     20
товар4          |  00028    |      5       |        50     | 00028  |      3      |     50
товар5          |  00029    |      2       |        15     |   0       |              |        
товар6          |  00030    |      7       |        25     |   0       |              |        
товар7          |  00025    |      5       |        50     |   0       |              |      

Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 21:59 29-04-2009 | Исправлено: egerLESHIK, 22:09 29-04-2009
An4eus



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

Цитата:
Две ТЗ одинаковой структуры? в итоге надо "склеить" их?

не ответил!
 

Цитата:
товар1          |  00011    |      2       |        40     |   0       |      -       |      -  
товар2          |  00121    |      4       |        30     |   0       |      -       |      -  
товар3          |  00016    |      6       |        20     |   0       |      -       |      -
почему последние слобцы с прочерками?


----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 22:03 29-04-2009
egerLESHIK



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

Цитата:
Две ТЗ одинаковой структуры? в итоге надо "склеить" их?

даже и не знаю что под этим подразумевать? Если количество колонок, то по количеству они разные, а "склеиваются" выборочно колонки с одинаковыми значениями на тип и длину.

Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 22:06 29-04-2009
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
egerLESHIK
напиши структуру двух ТЗ + типы колонок и что нужно склеить...

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 22:33 29-04-2009
egerLESHIK



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

Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 22:54 29-04-2009
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
egerLESHIK
1. клеешь по-дуракци! сделал бы одинаковую структуру ТЗ-ок, а потом использовал бы метод Выгрузить() [у ТЗ]
2. а почему они у тебя пустые? если это тип колонки - число, то должен быть 0! Используй стандартный метод Сортировать("АртИмп-")

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 23:05 29-04-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